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

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • Marina and The Diamonds

    Marina and T

    8 Temmuz 2008
  • PCDIY

    PCDIY

    16 AÄžUSTOS 2013