için optimize Ben PYPY altında bazı Python kodu çalıştırıyorum ve bunu optimize etmek istiyorumPYPY
(Bu Statistical profiler for PyPy için bir takip olduğunu).
Python'da, hangi satırların yavaşlama işlemine neden olduğunu öğrenmek ve etraflarında dolaşmaya çalışmak için statprof
veya lineprofiler
kullanırım. Ancak PyPy'de, her iki araç da PyPy'nin bazı satırları en iyi duruma getirebileceği gibi hassas sonuçlar vermez. Ayrıca, rapor edilen fonksiyonun hangi kısmının tıkanıklık olduğunu çok zor bulmam için cProfile
'u kullanmayı tercih etmem.
Nasıl devam edeceğiniz konusunda bazı ipuçları var mı? PyPy'nin altında güzelce çalışan bir başka profiler olabilir mi? Genel olarak, PyPy için Python kodunun optimizasyonu nasıl yapılır?
Öneriniz nedir? –
Benim önerim, sadece PyPy'nin nasıl çalıştığını göz önüne alarak cProfile kullanmaktı. İkinci önerim JitViewer'ı kullanmaktı, eğer gerçekten kodunuzun performans özelliklerine dair düşük seviyeli bir anlayışa ihtiyacınız varsa. – jlund3
Akış grafikleri dönüştürmeleri, yorumlayıcıyı uygulayan RPython kodunu derlerken ve optimize ederken uygulanır, * Python kodunuz değil. Bu dönüşümler, C derleyicinin CPython yorumlayıcısının C kodu için uyguladığı dönüşümlerin karşılığıdır ve son kullanıcının Python koduyla ilgisi yoktur. PyPY'nin JIT'si, bahsettiğiniz problemi ortaya koymaktadır; Sıcak döngüler, birden çok farklı montaj kodu bloğuna JIT-derlenmiş olacaklardır, bu da performansı Python ifadelerinin bireysel olarak geri almasını zorlaştırır. – Ben