Yüksek performans profilleme Haskell kodu
Yüksek performanslı bazı Haskell kodu var - iç döngü 6 montaj talimatları derler. Daha az verimli olduÄŸu için iç döngü deÄŸiÅŸtirme performansı üzerinde herhangi bir etkisi farkedilir, iç döngü darboÄŸaz deÄŸil ima yok. Profil açtığımda ancak, derleme kod iç döngü için oluÅŸturulan önemli ölçüde daha az verimli hale, ve profiler iç döngü süresini …'ini aldığını bildirdi.
Bir şeyi gereksiz yere yavaş olduğunu düşünüyorum, ama sanırım ne olduğunu görmek için profilleme kullandığımda profil oluşturma hakim olan iç döngü yeterince yavaş yapar. Teknikleri I zaman nereye gittiğini görmek için ne kullanabilirim? Örnekleme profiler eğer Haskell için bir tane olsaydı güzel olurdu.
CEVAP
Linux perf olayları kullanabilirsiniz: https://ghc.haskell.org/trac/ghc/wiki/Debugging/LowLevelProfiling/Perf
Bu gibi görünen bir çıktı verecektir:
# Samples: 9161149923
#
# Overhead Command Shared Object Symbol
# ........ ....... ................. ......
#
30.65% queens queens [.] s1ql_info
18.67% queens queens [.] s1qj_info
12.17% queens queens [.] s1qi_info
9.94% queens queens [.] s1o9_info
5.85% queens queens [.] r1nI_info
5.33% queens queens [.] s1sF_info
5.18% queens queens [.] s1sG_info
3.69% queens queens [.] s1oP_info
1.68% queens queens [.] stg_upd_frame_info
0.88% queens queens [.] stg_ap_2_upd_info
0.62% queens queens [.] s1sE_info
0.56% queens [kernel] [k] read_hpet
0.39% queens queens [.] stg_ap_p_info
0.35% :2030 f76beb [.] 0x00000000f76beb
0.31% queens queens [.] s1oD_info
0.28% swapper [kernel] [k] mwait_idle_with_hints
0.25% queens queens [.] __stg_gc_enter_1
0.23% queens queens [.] evacuate
0.18% swapper [kernel] [k] read_hpet
0.12% queens queens [.] scavenge_block
Sizin yapabileceğiniz bir derleme olarak çekirdek bu semboller temel işlevleri kaydetmek göster.
Biraz acı, ama daha güvenilir sonuç verir.
Bunu otomatik olarak yapmak için bazı işler dönüyor.
Nasıl performans JavaScript kodu test ...
Neden bu Haskell kodu-O yavaş ile çalı...
C kodu döngü performans [devamı]...
&Quot;->&; PHP operatör aradı ve na...
Kullanım Haskell devlet kodu bir koku ...