Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 16030|Yanıt: 0

[İpucu] Birkaç Python yürütme süresi hesaplama yöntemi

[Bağlantıyı kopyala]
Yayınlandı 23.04.2018 15:54:36 | | | |
Ö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:







Önceki:Windows altında python 3.6.5 kurulum eğitimi
Önümüzdeki:Sinir Ağı Mimarisinin Evrimi: LeNet5'ten ENet'e kadar ondan fazla mimarinin kapsamlı bir incelemesi
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com