Bir web.py web arabirimi sağlamak için jeneratörlerin sonuçlarını yoğun şekilde kullanan bir uygulamayı uyarlıyorum.Python jeneratörü Profilleme
Şimdiye kadar, çağrıyı döngü içi ve çıktı üreten deyimlere bir işlevde sarmalı ve bunu cProfile.run()
veya runctx()
kullanarak arayabilirim. Kavramsal olarak:
def output():
for value in generator():
print(value)
cProfile.run('output()')
hemen yield
kullanılarak her iterasyon adımında Uzun çalışabilecek hesaplama çıktı üretmek istiyorum çünkü, ben, bunu şu şekilde kaydırmak zorunda:
class index:
def GET(self):
for value in generator():
yield make_pretty_html(value)
İkinci örnekte kullanıldığı zaman ilk örnekte olduğu gibi jeneratöre yapılan tüm aramaları izlemenin bir yolu var mı?
Sadece tek bir iterasyon yerine tüm işlev çağrısını ölçmek mi istiyorsunuz? CProfile.run ('liste (dizin(). GET())') 'de olduğu gibi? –
Özünde, bu for-döngüsünün başardığı şeydir. Buradaki problem, 'GET()' e yapılan aramalar üzerinde hiçbir kontrolüm olmaması, 'web.py' tarafından ele alındığıdır. Dahası, çıktının artık bu şekilde üretileceğini düşünmüyorum (dönüş değerini kullanarak). –