Öncelikle, karşılaştığım tuzaklardan, üretimde karşılaştığım sorunlardan bahsedelim, python betiklerinin yürütülmesini planlıyor ve süreci izliyorum, python script çalışma süresi python scriptinde saydığım program yürütme süresinden çok daha uzun. Python scriptlerinin yürütülmesini izleme süresi 36 saatken, python scriptlerinde kendi kendini çalıştırma süresi yaklaşık 4 saattir. Sorundan sonra aklıma gelen ilk şey, Linux'ta bir sorun olması ve çeşitli loglarda herhangi bir anormallik bulmadığım. Sonra python'da veri yazmak için kullanılan py2neo'yu düşünüyorum, bu da sürecin yürütülmesini engelliyor. Son olarak sorun bulundu: python betiklerinin time.clock() kullanarak CPU'nun çalışma süresini sayma şekli, programın çalışma süresi değil. Sonra, birkaç Python zaman istatistikini karşılaştıralım:
Yöntem 1:
datetime.datetime.now() mevcut tarihi alır ve program yürütme bittikten sonra, bu yöntemle elde edilen zaman değeri program çalıştırma zamanıdır.
Yöntem 2:
time.time() ile dönemden bu dönemden itibaren mevcut zamanı almak için (Saniyeler içinde)。 Sistem saati bunları sağlıyorsa, saniyenin bir kısmı olabilir. Bu yer bir kayan nokta tipini döndürüyor. Burada elde edilen aynı zamanda programın yürütme süresidir.
Yöntem 3:
time.clock() programın başladığı veya ilk çağrıldığı CPU zamanını döndürür. Bu, sistem kaydı kadar hassas bir yaklaşıma sahiptir. Dönüş de kayan nokta tipidir. Burada elde ettiğiniz şey CPU'nun çalışma süresidir. Not: Program yürütme süresi = CPU süresi + io zamanı + hibernasyon veya bekleme süresi
Fonksiyonun çalışma süresini yöntem 2 ile nasıl test ettiğim şöyle:
|