2012-08-26 20 views

cevap

12

SLIME kullanıyorsanız, time'un yanı sıra uygulamaya özel araçların da kullanabileceği birkaç profiling commands vardır.

M-x slime-toggle-profile-fdefinition (özel) profiline özel işlevleri göster, sonuçları göstermek için M-x slime-profile-report ve sıfırlamak için M-x slime-profile-reset.

+0

Bu, kullanımı gerçekten çok kolay. Teşekkürler. – yilmazhuseyin

11

SBCL kullanıyorsanız, temiz bir istatistik uzmanı var - http://www.sbcl.org/manual/Statistical-Profiler.html.

Basit ölçümler için, tüm Common Lisp uygulamalarında kullanılabilen time'u kullanabilirsiniz.

+0

Sb-sprof paketini beğeniyorum. Tüm çağrılan fonksiyonları (sistem fonksiyonları dahil) verir Buradaki sorunum, bu işlevlerin bazılarının çağrıldığı yeri gerçekten göremiyorum. Ortak lisp, (python memmory profiler belki https://github.com/fabianp/memory_profiler gibi bir şey) hat-by-profiler uygulaması var mı burada örnek bir python kodu ve memmory_profiler sonucu https: //gist.github com/3.235.444. Bununla, dizi türlerini değiştirebilir ve memmory sonucunu görebilirim. Bu, bottlenec'leri çok iyi göstermez ama tiple ilgili problemleri bulmak için oldukça iyidir. – yilmazhuseyin

+0

Ayrıca, SBCL kullanıyorsanız, bir dosya (veya tam sistem) derleme yaptığınızdan ve derleyici notlarının tamamını okuduğunuzdan emin olun. Muhtemelen orada birkaç verimlilik notu var. – Vatine

+0

@yilmazhuseyin SBCL ayrıca [determinist bir profiler] 'i (http://www.sbcl.org/manual/Deterministic-Profiler.html#Deterministic-Profiler) içerir, ancak hala işlev odaklı, çizgi yönelimli değil (kullanmayın)). Belirli bir işlevi kimin aradığını görmek için, SLIME'in Cc Cw c işlevini işlev adında kullanabilirsiniz (SLIME, birçok yararlı [çapraz başvuru komutu] içerir (http://common-lisp.net/project/slime/doc/html/ Cross_002dreference.html)). –