SORU
20 Mart 2011, Pazar


Anlayış ruby-prof çıktı

Ruby-profiler benim programlardan biri kaçtım. Her alanları demek istediğini anlamaya çalışıyorum. Her şeyin harika olduğu zaman (ve duvar saati zaman değil) İŞLEMCİ, olduğunu tahmin ediyorum. Ne olduğunu anlamak istiyorum "---" anlamına gelmektedir. Orada bilgi yığını var. Aramalar/b ne anlama geliyor?

Teşekkürler!

Thread ID: 81980260
Total Time: 0.28

  %total   %self     total      self      wait     child            calls   Name
--------------------------------------------------------------------------------
                      0.28      0.00      0.00      0.28              5/6     FrameParser#receive_data
 100.00%   0.00%      0.28      0.00      0.00      0.28                6     FrameParser#read_frames
                      0.28      0.00      0.00      0.28              4/4     ChatServerClient#receive_frame
                      0.00      0.00      0.00      0.00             5/47     Fixnum# 
                      0.00      0.00      0.00      0.00              1/2     DebugServer#receive_frame
                      0.00      0.00      0.00      0.00            10/29     String#[]
                      0.00      0.00      0.00      0.00            10/21     <Class::Range>#allocate
                      0.00      0.00      0.00      0.00            10/71     String#index
--------------------------------------------------------------------------------
 100.00%   0.00%      0.28      0.00      0.00      0.28                5     FrameParser#receive_data
                      0.28      0.00      0.00      0.28              5/6     FrameParser#read_frames
                      0.00      0.00      0.00      0.00             5/16     ActiveSupport::CoreExtensions::String::OutputSafety#add_with_safety
--------------------------------------------------------------------------------
                      0.28      0.00      0.00      0.28              4/4     FrameParser#read_frames
 100.00%   0.00%      0.28      0.00      0.00      0.28                4     ChatServerClient#receive_frame
                      0.28      0.00      0.00      0.28              4/6     <Class::Lal>#safe_call
--------------------------------------------------------------------------------
                      0.00      0.00      0.00      0.00              1/6     <Class::Lal>#safe_call
                      0.00      0.00      0.00      0.00              1/6     DebugServer#receive_frame
                      0.28      0.00      0.00      0.28              4/6     ChatServerClient#receive_frame
 100.00%   0.00%      0.28      0.00      0.00      0.28                6     <Class::Lal>#safe_call
                      0.21      0.00      0.00      0.21              2/4     ChatUserFunction#register
                      0.06      0.00      0.00      0.06              2/2     ChatUserFunction#packet
                      0.01      0.00      0.00      0.01            4/130     Class#new
                      0.00      0.00      0.00      0.00              1/1     DebugServer#profile_stop
                      0.00      0.00      0.00      0.00             1/33     String#==
                      0.00      0.00      0.00      0.00              1/6     <Class::Lal>#safe_call
                      0.00      0.00      0.00      0.00              5/5     JSON#parse
                      0.00      0.00      0.00      0.00              5/8     <Class::Log>#log
                      0.00      0.00      0.00      0.00              5/5     String#strip!
--------------------------------------------------------------------------------

CEVAP
20 Mart 2011, Pazar


Ruby-prof çıktı, her bölüm belirli bir fonksiyon incelenmesi ayrılır. örneğin, çıkışının ilk bölümüne bak. FrameParser üzerinde read_frames yöntemi odak noktası ve temel olarak şunları söylüyor:

  • Profilli olduğunu yürütme zaman 0 FrameParser içinde geçti#read_frames
  • #Read_frames FrameParser oldu 6 kere aradı.
  • Read_frames 6 aramalarının 5 dışarı FrameParser geldi#receive_data ve bu yürütme zamanı (bu read_frames çizgi üstü çizgi) 0 oluşturuyor.
  • Çizgiler aşağıda read_frames (ama içinde ilk bölüm) yöntemi tüm yöntemleri bu FrameParser#read_frames aramalar (dikkat edin bu yana bu gibi kod), kaç kişi bu yöntemleri toplam aramalar read_frames sorumludur (a/b aramaları sütun), ve ne kadar zaman o telefonlar aldı. En yürütme zaman aldı emretti. Senin durumunda bu ChatServer sınıf receive_frame yöntemi.
  • Sonra bölüm receive_frames odaklanarak (2 aşağı ve '100%' receive_frame hattı) ve nasıl performans görmek bozuldu. merkezli yukarıdan bakmaya devam edebilirsiniz her bölüm aynı şekilde ve genellikle en çok zaman aldı sonraki işlev çağrısı bir sonraki bölüme aşağı odak noktası ayarlanır. ruby-prof tam çağrı yığını ile bu iş devam edecek. Gidermek için performans sorunu bulana kadar istediğiniz kadar derin gidebilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • National Geographic

    National Geo

    7 Mayıs 2006
  • sghaff1

    sghaff1

    23 Mart 2009
  • TopOfTheTech

    TopOfTheTech

    5 NİSAN 2010