Nejprve si pojďme promluvit o úskalích, na které jsem narazil, o problémech v produkci, plánuji spuštění python skriptu a monitoruji proces, doba běhu python skriptu je mnohem delší než doba spuštění programu, kterou počítám v python skriptu. Doba sledování provádění python skriptů je 36 hodin, zatímco doba samosprávy v python skriptech je asi 4 hodiny. První, co mě po problému napadne, je, že problém je s Linuxem, a v různých logech jsem nenašel žádné abnormality. Pak si vzpomenu na py2neo, které se používá v pythonu pro asynchronní zápis dat, čímž blokuje provádění procesu. Nakonec byl nalezen problém: způsob, jakým python skript používá time.clock() k počítání času vykonávání CPU, nikoli času vykonávání programu. Dále porovnejme několik statistik Python času:
Metoda 1:
datetime.datetime.now() získá aktuální datum a po skončení spuštění programu je časová hodnota získaná touto metodou čas spuštění programu.
Metoda 2:
time.time() pro získání aktuálního času od epochy (Během několika sekund)。 Pokud je systémový hodiny poskytují, může být zlomek sekundy. Toto místo tedy vrací typ s plovoucí desetinnou čárkou. Zde se získává také čas spuštění programu.
Metoda 3:
time.clock() vrací čas CPU od spuštění programu nebo od prvního volání. To má stejnou přesnost jako systémový záznam. Návratnost je také typu s plovoucí desetinnou čárkou. To, co zde dostanete, je doba spuštění CPU. Poznámka: Čas vykonávání programu = čas CPU + čas IO + doba hibernace nebo čekání
Takto testuji dobu provedení funkce pomocí metody 2:
|