ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° python
ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Python
ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° (progress bar) β Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΡ. ΠΠ½ΠΈ ΠΈΠ·Π±Π°Π²Π»ΡΡΡ Π½Π°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, Π½Π΅ Π·Π°Π²ΠΈΡ Π»ΠΈ ΡΠΊΡΠΈΠΏΡ, Π΄Π°ΡΡ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ.
Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ°Π½Π΅Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ ΠΈΡ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΊΠΎΠ΄. Π ΡΡΠ°ΡΡΡΡ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΠ΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡΡ, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠ°ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈΠ»ΠΈ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π±ΡΡΡΡΠΎ Π½Π°Π±ΠΈΡΠ°ΡΡΠ΅ΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PySimpleGUI.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Progress
ΠΠ΅ΡΠ²ΡΠΌ Ρ Π½Π°Ρ ΠΈΠ΄ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Progress.
ΠΡΡ, ΡΡΠΎ ΠΎΡ Π²Π°Ρ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠΈΠΏ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ:
ΠΡΡΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π½Π° Π»ΡΠ±ΠΎΠΉ Π²ΠΊΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ tqdm
Π‘Π»Π΅Π΄ΡΡΡΠ΅ΠΉ Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈΠ΄ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° tqdm.
ΠΡΡΡΡΡΠΉ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π΄Π»Ρ Python ΠΈ CLI
ΠΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ:
Π‘Π°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅ ΠΈΠ΄ΡΡ ΠΊΡΡΠ° Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ ΠΎΠΏΡΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ alive-progress
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°, ΠΏΠΎΠ±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ, ΡΠ΅ΠΌ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ :
GUI ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ° Π΄Π»Ρ ΡΠΊΡΠΈΠΏΡΠ°
ΠΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ.
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ΄Π° Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°? ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ:
ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ PySimpleGUI
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ° Π² PySimpleGUI.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: ΠΊΠΎΠ΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π° ΠΎΡΠ·ΡΠ²ΡΠΈΠ²ΠΎΡΡΡ ΠΏΠΎΠ²ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ, ΡΡΠΎΠ±Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π³Π°Π΄Π°ΡΡ, Π·Π°Π²ΠΈΡ Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ!
ΠΡΡΡΡΡΠΉ ΡΠ΅ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Python Π΄Π»Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ
ΠΠΎΡΠΈΠ²Π°ΡΠΈΡ
Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π΄Π°Π²Π½ΠΎ Π²ΡΡΠ»Π° Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ 0.34 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠ΅Π³ΠΎ JIT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Numba Π΄Π»Ρ Python. Π ΡΠ°ΠΌ ΡΡΠ°! ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΈ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ Π±ΡΠ»Π° Π²Π·ΡΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Intel Parallel Accelerator.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ Ρ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠ΄Π΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Python ΠΎΡΠ΅Π½Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π½Π°ΡΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΡ , Π° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Machine Learning Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ². ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅, ΡΠΎ ΠΏΠΎΡΡΠΈ Π²Π΅Π·Π΄Π΅ Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΡΠΊΠ° Π½Π°Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΡΡ Π½Π° C/C++. Π ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π° ΡΠΈΡΡΠΎΠΌ Python ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡΡΡΡΡΠΉ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ Π·Π°Π΄Π°ΡΡ. ΠΡΡΡΡ Π½Π°ΠΌ Π΄Π°Π½Ρ Π΄Π²Π° Π½Π°Π±ΠΎΡΠ° N ΡΠΎΡΠ΅ΠΊ Π² ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅: p ΠΈ q. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ:
ΠΠ»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΠΎΠ² Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ N = 5000. ΠΡΠ΅ΠΌΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΡΠ΅Π΄Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ 10 Π·Π°ΠΏΡΡΠΊΠΎΠ².
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° C++
ΠΠ°ΠΊ ΡΠΎΡΠΊΡ ΠΎΡΡΡΠ΅ΡΠ° Π²ΠΎΠ·ΡΠΌΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° C++:
ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠΊΠ» ΠΏΠΎ ΡΠΎΡΠΊΠ°ΠΌ p Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ OpenMP.
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 44 ΠΌΡ.
Π§ΠΈΡΡΡΠΉ Python
ΠΠ°ΡΠ½Π΅ΠΌ ΡΠ΅ΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Ρ ΠΊΠΎΠ΄Π° Π½Π° ΡΠΈΡΡΠΎΠΌ Python:
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 52 861 ΠΌΡ, ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π² 1000 ΡΠ°Π·.
Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½ΡΡΡΠΈ ΡΠ΅Π±Ρ GIL, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π²ΡΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ½Π΅ΠΌ ΡΡΠΎ Π²ΡΠ΅ ΡΡΠΊΠΎΡΡΡΡ.
Python + NumPy + SciPy
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΡΡΠΈ Python Π΄Π»Ρ ΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΎΡΠΎΠ·Π½Π°Π»ΠΈ ΠΎΡΠ΅Π½Ρ Π΄Π°Π²Π½ΠΎ. Π ΠΎΡΠ²Π΅ΡΠΎΠΌ Π½Π° ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΠ»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° NumPy. ΠΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡ NumPy Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ Π±Π»ΠΈΠ·ΠΊΠ° MatLab, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΏΡΠΈΠ·Π½Π°Π½Π½ΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π½Π°ΡΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ².
ΠΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΠΌ ΠΌΡΡΠ»ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ, ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΌΡΡΠ»ΠΈΡΡ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΊΠ°ΠΊ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌ ΠΈ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ Π½Π° Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ Intel MKL ΠΈΠ»ΠΈ ATLAS.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° NumPy Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π°!
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 839 ΠΌΡ, ΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΄Π΅-ΡΠΎ Π² 19 ΡΠ°Π·.
ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π² NumPy ΠΈ SciPy Π΅ΡΡΡ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π° SciPy Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 353 ΠΌΡ, ΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² 8 ΡΠ°Π·.
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π·Π°Π΄Π°Ρ ΡΡΠΎ ΡΠΆΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ. Π¦Π΅Π½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Π° ΠΌΡΡΠ»Π΅Π½ΠΈΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΈΠ· Π±Π°Π·ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ, Π½ΠΎ ΠΏΠΎΡΠΎΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΠΊΠΈ.
ΠΠΎ Π° ΠΊΠ°ΠΊ Π±ΡΡΡ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΡΡΡΡ? ΠΠ΄Π΅ΡΡ ΠΎΠ½Π° Π½Π΅ΡΠ²Π½Π°Ρ. ΠΡ Π½Π°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠΎ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ ΠΈ Π²Π΅ΠΊΡΠΎΡΠ°ΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
Π ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π°Ρ ΠΊΠΎΠ΄ Π½Π΅ Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π°Π»Π³Π΅Π±ΡΡ, ΠΈΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ²Π½ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·Π°ΡΠΈΡ?
Python + Cython
Π§ΡΠΎ ΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? ΠΠ° Π²Ρ ΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ python numpy ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π΄Π°Π»Π΅Π΅ ΠΎΠ½ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Cython Π‘-ΡΡΡΡΠΊΡΡΡΡ, Π° Π΄Π°Π»Π΅Π΅ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ gil ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ‘prange’ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 76 ΠΌΡ, ΡΡΠΎ Π² 1.75 ΡΠ°Π· ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΡ ΡΡΠΎ, ΠΌΡ ΠΏΠΎΡΡΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΠ»ΠΈΡΡ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ ΠΏΠΈΡΠ°ΡΡ ΡΠ²Π½ΡΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎ ΡΠ΅Π½ΠΎΠΉ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π» ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄, ΠΌΡ ΡΡΠ»ΠΈ ΠΎΡ ΡΠΈΡΡΠΎΠ³ΠΎ Python.
Π ΡΠ΅Π»ΠΎΠΌ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΠ°ΡΡΠ΅ΡΠΎΠ² ΡΠ°ΠΊ ΠΈ ΠΏΠΈΡΡΡΡΡ. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ Π½Π° NumPy, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΡΠ° ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΏΠΎ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²ΡΠ½ΠΎΡΡΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ Π½Π° cython.
Python + Numba
ΠΡ ΠΏΡΠΎΠ΄Π΅Π»Π°Π»ΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡΡ. ΠΡ Π½Π°ΡΠ°Π»ΠΈ Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Python, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΠ»ΠΈ ΠΏΠΎ ΠΏΡΡΠΈ ΠΌΠ°Π³ΠΈΠΈ ΠΌΠ°ΡΡΠΈΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠ»ΠΈΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ. ΠΠΎΡΠ° Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΡΠΎΠΌΡ, Ρ ΡΠ΅Π³ΠΎ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ. ΠΡΠ°ΠΊ, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Python + Numba:
ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ: 46 ΠΌΡ, ΡΡΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ!
Π Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ Python ΠΊΠΎΠ΄ΠΎΠΌ:
ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Python?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² Python, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ. Π― Ρ ΠΎΡΡ Π·Π½Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π±Π΅Π³.
ΠΈ timeit module, Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°. Π― Ρ ΠΎΡΡ Π·Π°ΡΠ΅ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
24 ΠΎΡΠ²Π΅ΡΠΎΠ²
ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π² Python:
ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π΅ΡΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°.
Π― ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΡΡΠΎ timing.py ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠ²ΠΎΠΈ
time.clock() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΡΡΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ (Π² Unix Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅). Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ:»Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³Π° Python ΠΈΠ»ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ»
ΠΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»Π° ΠΠ°ΠΊΠ³ΠΈΡΠ°, Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Python3. ΠΡΠ°ΠΊ, Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ: Π²ΠΎΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΅Π³ΠΎ ΠΎΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Python 3 Π½Π° *nix (Ρ ΠΏΠΎΠ»Π°Π³Π°Ρ, ΠΏΠΎΠ΄ Windows, ΡΡΠΎ ΡΠ°ΡΡ () Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ time ()):
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΠΎΠ²Π°ΡΡ Π·Π° Π΅Π³ΠΎ ΠΎΡΠ²Π΅Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ΄Π΅Π»Π°Π» Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΡ ;).
Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ°ΠΉΠ» python profiler Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°, Π½Π΅ Π·Π½Π°Ρ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ. ΠΎΡΠ²Π΅Ρ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ SO Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠΎ. ΠΡΠ΅Π³Π΄Π° Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ ΡΠΎΠΆΠ΅.
Π²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΈΠΏΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cProfile ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
ΠΌΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ Π²ΡΠ²ΠΎΠ΄ datetime ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ, Π³Π΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠ°Π΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΄Π½ΠΈ, ΡΠ°ΡΡ, ΠΌΠΈΠ½ΡΡΡ etc. ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π² ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅.
ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ²ΠΎΠ΄Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:
Π΅ΡΠ΅ Π»ΡΡΡΠ΅ Π΄Π»Ρ Linux: /usr/bin/time
ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ rogeriopvl ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ python. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ:
ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡ Π²Π°ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» Π½Π° ΠΌΠΎΠ΄ΡΠ»Ρ timeit, Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°. Π― Ρ ΠΎΡΡ Π·Π°ΡΠ΅ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ your_module.main() ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΏΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ°.
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ time.sleep() ) Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ profile ΠΌΠΎΠ΄ΡΠ»Ρ ( cProfile Π½Π° Python 2):
Ipython «timeit» Π»ΡΠ±ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ:
Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.clock()
Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.perf_counter()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π² Π΄ΡΠΎΠ±Π½ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ) ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Ρ. Π΅. ΡΠ°ΡΡ Ρ ΡΠ°ΠΌΡΠΌ Π²ΡΡΠΎΠΊΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡΠΎ ΡΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ½Π° ΠΈ ΠΎΠ±ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ.
Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.process_time()
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π² Π΄ΡΠΎΠ±Π½ΡΡ ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ ) ΡΡΠΌΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΡΠΎ Π½Π΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ½Π°.
ΠΡΠΎΡΡΠΎ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ timeit ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Ρ Python 2, ΡΠ°ΠΊ ΠΈ Ρ Python 3
ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄, ΠΈ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΎΡΡΠΎ, Π½ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠΎ Π²ΠΎΠ·ΡΠΌΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ «Start» ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ
Π΅ΡΡΡ timeit ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² python. ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ python (https://docs.python.org/2/library/timeit.html)
ΠΠ½Π΅ ΡΠΎΠΆΠ΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»Π° ΠΠ°ΠΊΠ³ΠΈΡΠ° ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π» ΡΠΎΡΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»Π° ΠΌΠΎΠΈΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡΠΌ.
ΡΡΠΎ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»Π° ΠΠ°ΠΊΠ³ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ. ΠΠ° ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.
Π²ΡΠ·ΠΎΠ² timing.main() ΠΈΠ· Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠ°ΠΉΠ»Π°.
Timeit-ΠΊΠ»Π°ΡΡ Π² python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°.
Default_timer-ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΡΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΠΎΠ², Π° Π½Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π°.
ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
line_profiler Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°. ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² C ΡΠ΅ΡΠ΅Π· Cython, ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Jupyter Notebooks
Π² ΡΡΠ΅ΠΉΠΊΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Jupyter ΡΡΠΎ %%time Π²ΠΎΠ»ΡΠ΅Π±Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
Π²ΡΡ
ΠΎΠ΄
ΠΡΠ΅ΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°: ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 4.54 ms, sys: 0 ns, Π²ΡΠ΅Π³ΠΎ: 4.54 ms
ΠΡΠ΅ΠΌΡ ΡΡΠ΅Π½Ρ: 4,12 ΠΠ‘
ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΉΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π½ΠΎΡΡΠ±ΡΠΊΠ° (Ρ. Π΅. ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ Π½ΠΎΡΡΠ±ΡΠΊ Π² ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ Π½ΠΎΡΡΠ±ΡΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΡΡΠ΅ΠΉΠΊΠΈ:
Π²ΡΡ
ΠΎΠ΄
IPython ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° (ΠΎΡΠ΅Π½ΠΎΡΠ½ΡΠ΅): ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: 0.00 s.
Π‘ΠΈΡΡΠ΅ΠΌΠ°: 0.00 s.
ΠΡΠ΅ΠΌΡ ΡΡΠ΅Π½Ρ: 0.00 s.
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ metakermit Π΄Π»Ρ python 2.7 Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠΎΠ½ΠΎΡΠΎΠ½Π½Π°Ρ.
ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ:
ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ «ΠΠΎΡΡΠ΄ΠΎΠΊ ΡΠΎΡΡΠ°» ΠΈ Π²ΡΡΡΠΈΡΠ΅ Π±ΠΎΠ»ΡΡΡΡ Π½ΠΎΡΠ°ΡΠΈΡ «ΠΎ», Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ,https://en.wikipedia.org/wiki/Big_O_notation
Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Python Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠ°Π³Π°Ρ ΠΏΠΎΠ΄ΡΡΠ΅ΡΠ° ΠΌΠ°ΡΠΈΠ½ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ: Π°Π΄Π°ΠΏΡΠΈΡΡΠΉΡΠ΅ ΡΡΠΎ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ΅Π½ΠΈΡΡ
Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ.
Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ, Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠ΄Π° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΈ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΡΠΎΠ³Π΄Π° Π²ΡΡ ΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
Π― ΡΡΠ²ΡΡΠ²ΡΡ ΡΠ΅Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎΠΉ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ ΠΊΠΎΠ΄ Π½Π° Python Π² ΡΡΡΡΡΡ ΡΠ°Π·
ΠΠ±ΡΡΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Python ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ
Π Π»ΡΠ±ΡΡ ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°Π½ΠΈΡΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Python ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ°. ΠΡΠΎ-ΡΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΡΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ. ΠΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅. ΠΠΎ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Java ΡΠΎΠΆΠ΅ ΡΠ·ΡΠΊ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π΅Ρ Π±Π°ΠΉΡΠΊΠΎΠ΄ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ JVM. ΠΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Π² ΡΡΠΎΠΌ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅, Java Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Python.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΡΡΡ Python. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠΈΠΊΠ» for Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½:
3,37 Ρ Β± 582 ΠΌΡ Π½Π° ΡΠΈΠΊΠ» (ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β± ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ 7 ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΠΏΠΎ 1 ΡΠΈΠΊΠ»Ρ)
ΠΠΈΡΠ΅Π³ΠΎ ΡΠ΅Π±Π΅, Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ 1 000 000 ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 3,37 Ρ. Π’Π° ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° C Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½ΠΈΡ: 9 ΠΌΡ; C# ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 19 ΠΌΡ; Nodejs ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 26 ΠΌΡ; Java ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 5 ΠΌΡ(!), Π° Python ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π°ΠΆ ΡΠ΅Π»ΡΡ 3,37 Π‘ΠΠΠ£ΠΠΠ«. (ΠΠ΅ΡΡ ΠΊΠΎΠ΄ ΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ Π² ΠΊΠΎΠ½ΡΠ΅).
ΠΠ΅ΡΠ²ΠΎΠΏΡΠΈΡΠΈΠ½Π° ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΡΡΠΈ
ΠΠ±ΡΡΠ½ΠΎ ΠΌΡ Π½Π°Π·ΡΠ²Π°Π΅ΠΌ Python ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π° Python Π²ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ; ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄ Π½Π° Python ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠ±ΡΡΡΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ½ΡΡΡΠΈ ΡΠΈΠΊΠ»Π° for ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΈΠΏ ΠΈ Π²ΡΡΠΈΡΠ»ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ. ΠΡΠ΅ ΡΡΠΈ 3 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΡΡΠ°ΡΡΡΡΡ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ².
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ C, Π³Π΄Π΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ, Π² Python ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΡΠΎΠ² Π¦Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠ°.
ΠΠ°ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ β ΡΡΠΎ Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ.
Π¨Π°Π³ 1. ΠΠ°Π΄Π°ΡΠΌ a->PyObject_HEAD->typecode ΡΠΈΠΏ integer
Π¨Π°Π³ 2. ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ a->val =1
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Python ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ, ΡΡΠΎΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΡΠ΄Π΅ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΠΆΠ΅ΠΉΠΊΠ°: Why Python is Slow: Looking Under the Hood
ΠΡΠ°ΠΊ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ², Π° Π·Π½Π°ΡΠΈΡ, ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ?
Π Π΅ΡΠ΅Π½ΠΈΠ΅: ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ NumPy
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ list ΡΠ·ΡΠΊΠ° Python, ΠΌΠ°ΡΡΠΈΠ² NumPy β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° C. ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² NumPy Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π³ΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ². ΠΡΠΎ Π΄Π°ΡΡ Π½Π°ΠΌ Π½Π°ΠΌΡΠΊ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Universal Functions (ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ) NumPy, ΠΈΠ»ΠΈ UFunc.
ΠΡΠ»ΠΈ Π²ΠΊΡΠ°ΡΡΠ΅, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ UFunc ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΡ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Ρ ΡΠ΅Π»ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ. ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Python Π² Π²Π΅ΡΡΠΈΡ Π½Π° UFunc, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΠΊΠΎΡΠΎΡΡΡ, Π½ΠΎ ΠΈ ΡΠΊΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ΄. ΠΡΠ³Π°Π΄Π°Π΅ΡΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅? 2,7 ΠΌΡ β Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π²ΡΠ΅ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π²ΡΡΠ΅ ΡΠ·ΡΠΊΠΈ:
2,71 ΠΌΡ Β± 50,8 ΠΌΠΊΡ Π½Π° ΡΠΈΠΊΠ» (ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β± ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ =7 ΠΏΡΠΎΠ³ΠΎΠ½ΠΎΠ² ΠΏΠΎ 100 ΡΠΈΠΊΠ»ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΡΠΉ)
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Ufunc.
ΠΠΎΠ΄Π²ΠΎΠ΄ΠΈΠΌ ΠΈΡΠΎΠ³
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ Python, ΡΠΎ Π²ΡΡΠΎΠΊΠ° Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² NumPy ΠΈΠ»ΠΈ DataFrame Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pandas, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ DataFrame ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ NumPy. Π’ΠΎ Π΅ΡΡΡ Ρ Π½ΠΈΠΌ ΡΠΎΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ufunc.
UFunc ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Python ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±ΡΡΡΡΠ΅Π΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΊΠΈ Π²Π΅Π»ΠΈΡΠΈΠ½. Π‘Π°ΠΌΡΠΉ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°ΠΆΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΡΠ·ΡΠΊΠ° C. Π ΡΡΠΎ Π·Π΄ΠΎΡΠΎΠ²ΠΎ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β ΠΊΠΎΠ΄ ΡΠ΅ΡΡΠΎΠ² Π½Π° C, C#, Java ΠΈ NodeJS
ΠΠ° ΠΏΡΠ°Π²Π°Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ
ΠΠΎΠΏΠ»ΠΎΡΠ°ΠΉΡΠ΅ Π»ΡΠ±ΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠΈΡ VDS Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠ΅ΠΉ Π½Π° Linux ΠΈΠ»ΠΈ Windows. Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡΡΡ!
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π° Python: ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄
Π₯ΠΎΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ·Π½Π°ΡΡ Python ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΡΠΈΡΡΠΎΠΌ Python ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈ Π½Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ C, Rust ΠΈ Java. Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Python Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π½ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΠΊΠ°ΠΊ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Python, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ!
Π’Π°ΠΉΠΌΠ΅ΡΡ Python
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΎΡΠ½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠΊΠ°. ΠΠΎΠ·ΠΆΠ΅ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π² ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ°ΠΉΠΌΠ΅Ρ Python, Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ time Π² Python, ΡΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (Π² Π΄ΠΎΠ»ΡΡ ΡΠ΅ΠΊΡΠ½Π΄) ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΎ Π΅ΡΡΡ ΡΠ°ΡΠΎΠ² Ρ ΡΠ°ΠΌΡΠΌ Π²ΡΡΠΎΠΊΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ perf_counter() Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python. ΠΠΎΠ·ΠΆΠ΅ Π²Ρ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python ΠΈ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ perf_counter() ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΡΡΡΠΈΠΌ Π²ΡΠ±ΠΎΡΠΎΠΌ.
ΠΡΠΈΠΌΠ΅Ρ: ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ
Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈ ΡΠΎΠΌΡ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° Π² ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ, ΡΠΌΠ΅Π»ΠΎ ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ.
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ n-Π³ΠΎ ΡΠΈΡΠ»Π° ΡΡΠ΄Π° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΊΠ»Π° while:
ΠΠ°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Python
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Python ΠΊ ΠΊΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ perf_counter() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, Π²ΡΡΠΈΡΠ»ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ.
f-ΡΡΡΠΎΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Python 3.6 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ . ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ Python 3.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ:
ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π° ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Python. Π ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Python-ΡΠ°ΠΉΠΌΠ΅Ρ Π² ΠΊΠ»Π°ΡΡ, ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΡΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
Python ΠΊΠ»Π°ΡΡ Timer
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ»Π°ΡΡ Timer, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² PyPI ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ codetiming. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Python
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python
ΠΠ΄Π΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅ΠΌΡΡ ΠΏΠΎ ΠΊΠΎΠ΄Ρ ΡΠ°Π³ Π·Π° ΡΠ°Π³ΠΎΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Timer :
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ, Π³Π΄Π΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ perf_counter() Π½Π°ΠΏΡΡΠΌΡΡ. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠ΄Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ°, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠΎΠ΄ ΡΡΠ°Π» Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΈ ΡΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ². Π’ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ±ΠΈΡΠ°Ρ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ², ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ!
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Timer Python
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½Π΅Π΅. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ, Timer Π·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎ ΠΏΠ΅ΡΠ°ΡΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π»ΠΎΠ³Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ Π²ΡΠ²ΠΎΠ΄:
ΠΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ· Timer ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ, Π½ΠΎ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΊΠΈΠΉ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ
ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π²Ρ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΄ΠΎΠ±ΡΡΠ² ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Python:
ΠΠΎΡΠ»Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ timer.py Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΡ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ:
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΠ΅ ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ΅, Python Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΠ΄Π½Π° ΡΠΎΠ½ΠΊΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΠ΅ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΈ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Python ΡΡΠ°ΡΠΈΡ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π° ΡΠΊΡΠ°Π½. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΡΠΌ Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΡΠ»ΠΎ Π±Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΡΠ΅ΠΌΡ.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π»ΠΈΠ±ΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΠΊΠ»Π°ΡΡΠ΅, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ΅Π· ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ°:
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΏΡΡΡΠΎΠΉ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ°Π·Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½ΡΠΌΡΡ ΠΊ series_numbers.py ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ:
ΠΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ Π΄Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅, Ρ ΠΎΡΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ:
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π₯ΠΎΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΠΏΠ½ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΎΠ½Π° ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΠΈΠΌΡ Timer ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π Python 3.7 ΠΊΠ»Π°ΡΡΡ Π΄Π°Π½Π½ΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ. ΠΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±ΡΡΠ² Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΎΠΊ ΠΎ ΠΊΠ»Π°ΡΡΠ΅ Π΄Π°Π½Π½ΡΡ Timer :
ΠΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π°Π½Π½ΡΡ Timer ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²Π°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅:
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π», Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Timer Π² Π΅Π³ΠΎ Π½ΡΠ½Π΅ΡΠ½Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ ΡΠΈΠΏΠ° ΠΊ ΠΊΠΎΠ΄Ρ Π΄Π»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²:
ΠΠ»Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π³ΠΈΠ±ΠΊΠΈΠΉ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π°Ρ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠΎΠ² Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Python Timer
Python ΠΊΠ»Π°ΡΡ Timer ΠΏΡΠΎΡΠ΅Π» Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡΡΡ! ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ Python ΠΊΠΎΠ΄ ΡΡΠ°Π» Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΡΠ½ΡΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² Π² Python
ΠΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π±ΡΠ»ΠΈ ΡΠ°ΡΡΡΡ Python Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ PEP 343 Π² 2005 Π³ΠΎΠ΄Ρ ΠΈ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² Python 2.5. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ·Π½Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° with :
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ², Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ»Ρ, Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΠ΅ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠ° ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° timer.py ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅. Π§ΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΡΡ ΠΈΠ΄ΠΈΠΎΠΌΡ Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° Π² Python:
Π§ΡΠΎ ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ fp ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ? Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ fp ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·ΡΠΊΠ° Python Π»Π΅ΠΆΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ ΠΊΠ°ΠΊ ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄.
ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Β«See you later, RascalΒ» ΠΏΠ΅ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π΅ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΠΈ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅, ΡΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ contextlib Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΡ!
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Python Timer
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π΅ΡΠ΅ Π΄Π²Π΅ ΡΠΎΠ½ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Python Timer
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Timer Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΈΡΠ»Π° Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Timer ΡΠ°Π½Π΅Π΅:
ΠΠ°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python:
Python Timer Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ
ΠΠ°Ρ ΠΊΠ»Π°ΡΡ Timer ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½. ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠΌ. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°:
1. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Timer ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ:
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΠΎΠ²Π΅ΡΠ΅ do_something() Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , ΡΡΠΎ ΡΡΠ°Π½Π΅Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎ Π² ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠΈ.
2. ΠΠ±Π΅ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ:
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² Π² Python
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ:
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ create_multiplier() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΌ factor :
Π‘ΠΈΠΌΠ²ΠΎΠ» @ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ @triple ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ triple() ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π΅.
ΠΠ½ΠΎΠ³Π΄Π° Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅. @functools.wraps ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ:
Π‘ Π½ΠΎΠ²ΡΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ @triple ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ knock() ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ, Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ» Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΡΠΎΡΠΌΠ°, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ @functools.wraps Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ. Π‘Ρ Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²Π°ΡΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Timer Python
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Python, ΡΡΠΎΠ±Ρ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Python Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Timer Ρ Π½ΡΠ»Ρ.
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΡΡ Π΅ΠΌΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΈ Π²Ρ ΠΎΠ΄Π΅ ΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Python ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ Π΄Π΅ΠΊΠΎΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Python ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ @timer ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ wrapper_timer() Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΡΠ°Π½Π½ΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ Π²Π°ΠΌΠΈ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π° Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ @timer ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΊ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ @ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, Π² ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΡ ΡΠΎΡΠΌΡ. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΠΈ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ:
@timer Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π²Ρ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΠΎΡΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ @timer Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ Timer. ΠΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ Timer Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ?
ΠΠ΄Π΅ΡΡ square-ΡΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ²Π°Π΄ΡΠ°Ρ ΡΠΈΡΠ»Π°, ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ square() Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Timer Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°:
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π», Π·Π½Π°ΠΉΡΠ΅, ΡΡΠΎ Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π²Π°Ρ ΡΠ°ΠΉΠΌΠ΅Ρ Python Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ. ΠΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡ ΠΎΠ΄ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°ΠΌΠΈ ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°ΠΌΠΈ. ΠΠ½ΠΈ ΠΎΠ±Π° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΎ-ΡΠΎ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠΌΠΏΠΎΡΡ Timer Π² ΡΡΡΠΎΠΊΠ΅ 3 ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ @Timer() Π² ΡΡΡΠΎΠΊΠ΅ 6. Π‘ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊΠΎ Π²ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π·:
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΡ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΡΡΠΎ ΠΈ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ²:
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΡΠ°ΠΊ Π³ΠΈΠ±ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΊ ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ, Π½ΠΎ ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡΠΊΠ»ΡΠΆΠ΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΎ.
ΠΠΎΠ΄ Timer Python
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² Π΅Π³ΠΎ Π² ΡΠ°ΠΉΠ»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ timer.py ΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΡΡΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°:
ΠΡΠΎΡ Π²ΠΈΠ΄ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΡΠ°ΡΠΈΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠ°ΡΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄.
ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π² Python
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π·Π°ΠΌΠ΅ΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Python. Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. ΠΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ PyPI ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π° Python.
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π²Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ·Π½Π°Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡΡ , Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ perf_counter() ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅. ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π² Python
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ perf_counter() Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° time Python ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΡΡ Π²ΡΠ΅ΠΌΡ. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ:
ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Python ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ float. Π§ΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ Π½Π΅ΡΠΎΡΠ½Ρ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π½ΡΡΠ΅:
Float Python ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΡ IEEE 754 Π΄Π»Ρ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ Π² 64 Π±ΠΈΡΠ°Ρ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π±ΠΈΡΠΎΠ².
IEEE 754 ΠΏΡΠ΅Π΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΡΠΈΡΠ΅Π», ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π§Π΅ΠΌ Π±Π»ΠΈΠΆΠ΅ Π²Ρ ΠΊ 1, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ΅Π» Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΠ΅Π» Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π·ΠΈΡΡ. ΠΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ float Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ΄Π΅ΡΡ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ perf_counter() ΡΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄Π½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ perf_counter() ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ².
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: perf_counter_ns() Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² Python 3.7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ . Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ perf_counter() Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ΅ Timer. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ°ΠΉΠΌΠ΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΡΠΈΡΡ Python. ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ _ns Π² time ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π² Python 3.7.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
PIP 418 ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ½Π° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΡΠ°ΡΠΊΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ:
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π»ΡΡΡΠΈΠΉ Π²ΡΠ±ΠΎΡ Π΄Π»Ρ Π²Π°Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ perf_counter() Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python.
ΠΡΠ΅Π½ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ timeit
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π½ΡΠΆΠ½ΠΎ Π²ΡΠΆΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π±ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ Π·Π°Π΄Π°Π΅ΡΠ΅ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠ°Π²Π½ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ set() ΠΈ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° <. >. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Python:
ΠΡΠΎΡ ΡΠ΅ΡΡ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π»ΠΈΡΠ΅ΡΠ°Π» ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ΄, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΠ²Π΅Π·ΡΠΈ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π·Π°Π½ΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ.
ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ. ΠΠ½Π° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΈ Π²ΡΠ·ΠΎΠ²Π΅ΠΌ timeit.timeit() ΠΈΠ· Python ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΡΠΈΡΠ°ΡΡ ΡΡΠΈ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ timeit Π½Π° ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½ΡΡ . ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ΠΌΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π΅ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ Π·Π°ΡΠΏΠ°ΠΌΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΠΎΡΠ°ΠΌΠΈ!
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° IPython ΠΈ Jupyter notebook ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ %timeit magic :
ΠΠΏΡΡΡ ΠΆΠ΅, ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π±ΡΡΡΡΠ΅Π΅.
ΠΠΎΠΈΡΠΊ ΡΠ·ΠΊΠΈΡ ΠΌΠ΅ΡΡ Π² ΠΊΠΎΠ΄Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
timeit ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈΠ½Π³Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠ΅Ρ ΡΠ°ΡΡΠ΅ΠΉ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ.
ΠΡΠΎΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²ΠΈΠ»ΠΎ 0.002 ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π Π½Π΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π΄Π΅ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΠΎΡΡΠ°ΡΠΈΠ» Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ΄Π΅ΡΡ Π²Ρ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΠΊΡΠΌΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (cumtime), ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΡΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ·Π²Π°Π»Π° Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π‘ΡΠΎΠ»Π±Π΅Ρ ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ (tottime) ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅Π» Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ΠΌΡ Π² ΠΏΠΎΠ΄ΡΡΠ½ΠΊΡΠΈΡΡ . ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΡΠ°ΡΠΈΡ Π½Π° ΡΡΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π§ΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ, Π³Π΄Π΅ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ²Π΅Π» Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄ΡΡΠ³ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ sort :
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, Π³Π΄Π΅ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΡΠ°ΡΠΈΡ Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π»ΡΠ±ΡΠ΅ ΡΠ·ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠΊΠ°ΠΆΡΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»Ρ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ KCacheGrind. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΏΡΠΎΡΠΈΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pyprof2calltree :
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° memory-profiler, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π²Π°ΡΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ line_profiler ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΡΡΠ΄Π½ΡΡ ΡΠ°ΡΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΊ Π²Π°ΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ cProfile Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΏΡΡΡΠΈΡΡ line_profiler Π΄Π»Ρ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. line_profiler Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ.
ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π΅ΠΌΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ° @profile Π² ΡΠ²ΠΎΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Timer.stop() Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π² timer.py :
ΠΡΠ²ΠΎΠ΄
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Python Π² ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Timer Python Π² ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄! ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΆΡΡΠ½Π°Π»Π°Ρ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²Π°ΡΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ.