Yüksek performans profilleme Haskell kodu | Netgez.com
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

  • Phymec

    Phymec

    18 Temmuz 2009
  • Rhapsody

    Rhapsody

    7 ÅžUBAT 2008
  • Watcher3223

    Watcher3223

    15 Kasım 2007