SORU
2 Ocak 2014, PERŞEMBE


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
6 Ocak 2014, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CMTelly

    CMTelly

    2 Mayıs 2007
  • fouseyTUBE

    fouseyTUBE

    21 Mart 2011
  • Thehalopianoplayer

    Thehalopiano

    4 ŞUBAT 2011