Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдбрд╛рд▓реНрд╡рд┐рдХ рдореЗрдВ рдПрдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рдкреНрд░рдмрдВрдзрди рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд▓реЗрдЦ рдЙрди рдЯреВрд▓ рдХреЛ рдХрд╡рд░ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред


рд╕реНрдореГрддрд┐ рдХреЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рд▓рдЧрд╛рддрд╛рд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреВрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдВрддрддрдГ рдЖрдЙрдЯрдСрдлрдореИрд░реАрдСрд░реНрд░рд░ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд░реИрд╢ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ, рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо, рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡реЗрджрди рдФрд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХреЛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛)ред

рдЙрдкрдХрд░рдг


рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рджреЛ рдореБрдЦреНрдп рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдбреАрдбреАрдПрдордПрд╕ рдореЗрдВ рдЖрд╡рдВрдЯрди рдЯреНрд░реИрдХрд░ рдЯреИрдм рдФрд░ рдвреЗрд░ рдбрдВрдкред рдЖрд╡рдВрдЯрди рдЯреНрд░реИрдХрд░ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╡рдзрд┐ рдореЗрдВ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЧрдП рдвреЗрд░ рдХреА рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрд╡рдВрдЯрди рдЯреНрд░реИрдХрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЯреНрд░реИрдХрд┐рдВрдЧ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рджреЗрдЦреЗрдВред рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕рд╛ рдвреЗрд░ рдбрдВрдк рдЕрдиреБрд╕рдВрдзрд╛рди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИред

рдПрдХ рдвреЗрд░ рдбрдВрдк рдкреВрд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реАрдк рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣реИ, рдЬреЛ HPROF рдкреНрд░рд╛рд░реВрдк рдХреА рдПрдХ рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред Dalvik рдПрдХ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ Java рдореЗрдВ HPROF рдЯреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред

рдЪрд▓ рд░рд╣реЗ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдвреЗрд░ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдбреАрдбреАрдПрдордПрд╕ рдореЗрдВ рдбрдВрдк рдПрдЪрдкреАрдЖрд░рдУрдПрдл рдлрд╝рд╛рдЗрд▓ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдбрдВрдк рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХреНрд╖рдг рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЪреБрдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ android.os.Debug.dumpHprofData () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдорд╛рдирдХ jhat рдЯреВрд▓ рдпрд╛ рдЧреНрд░рд╣рдг рдореЗрдореЛрд░реА рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ (MAT) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ .vik рдлрд╝рд╛рдЗрд▓ рдХреЛ Dal2 рдлреЙрд░реНрдореЗрдЯ рд╕реЗ J2SE HPROF рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдВрдбреНрд░реЙрдЗрдб SDK рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реА hprof-conv рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :

hprof-conv dump.hprof converted-dump.hprof 


рдЙрджрд╛рд╣рд░рдг: рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХреЛ рдбреАрдмрдЧ рдХрд░рдирд╛


Dalvik рдореЗрдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд▓реАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ C рдФрд░ C ++ рдореЗрдВред "рдореЗрдореЛрд░реА рд▓реАрдХ" рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рдРрд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХрднреА-рдХрднреА, рдПрдХ рдПрдХрд▓ рд▓рд┐рдВрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рд╕реЗ рд╣рдиреАрдХреЙрдореНрдм рдЧреИрд▓рд░реА рдирдореВрдирд╛ рдРрдк рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлреЛрдЯреЛ рдЧреИрд▓рд░реА рд╣реИ рдЬреЛ рд╣рдиреАрдХреЙрдореНрдм рдореЗрдВ рдирдП рдПрдкреАрдЖрдИ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЕрдм рд╣рдо рдЬрд╛рдирдмреВрдЭрдХрд░ рдореЗрдореЛрд░реА рд░рд┐рд╕рд╛рд╡ рдмрдирд╛рдПрдВрдЧреЗ, рдлрд┐рд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗред

рдЫрд╡рд┐


рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдо рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджреЗрдЦреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо ContentFragment.java рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдПрдХ рдирдП рдЪрд░ рдХреЛ рдШреЛрд╖рд┐рдд рдФрд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ:

  private static HashMap<String,Bitmap> sBitmapCache = new HashMap<String,Bitmap>(); 


рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдореЗрдВ, рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрд┐рдЯрдореИрдк рдХреЛ рдХреИрд╢ рдХрд░ рджреЗрдВрдЧреЗред рдЕрдм рдЖрдк рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреИрд╢ рдореЗрдВ рдмрд┐рдЯрдореИрдк рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯрдХреЙрдиреНрдЯреЗрдВрдЯрдПрдВрдб рд░реАрд╕рд╛рдпрдХрд▓рдмреАрдЯрдо () рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

  void updateContentAndRecycleBitmap(int category, int position) { if (mCurrentActionMode != null) { mCurrentActionMode.finish(); } // Get the bitmap that needs to be drawn and update the ImageView. // Check if the Bitmap is already in the cache String bitmapId = "" + category + "." + position; mBitmap = sBitmapCache.get(bitmapId); if (mBitmap == null) { // It's not in the cache, so load the Bitmap and add it to the cache. // DANGER! We add items to this cache without ever removing any. mBitmap = Directory.getCategory(category).getEntry(position) .getBitmap(getResources()); sBitmapCache.put(bitmapId, mBitmap); } ((ImageView) getView().findViewById(R.id.image)).setImageBitmap(mBitmap); } 


рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдореЗрдореЛрд░реА рд▓реАрдХ рдмрдирд╛рдИ: рдмрд┐рдЯрдореИрдкреНрд╕ рдХреЛ рдХреИрд╢ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╣рдЯрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЖрд╡реЗрджрди рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдбреАрдбреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдвреЗрд░ рдЕрдиреНрд╡реЗрд╖рдг


Dalvik Debug Monitor Server (DDMS) Android рдореЗрдВ рдореБрдЦреНрдп рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдЧреНрд░рд╣рдг рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП ADT рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдпрд╣ рдЖрдкрдХреЗ Android KK рдХреЗ рдЯреВрд▓ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, DDMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рджреЗрдЦреЗрдВред

рд╣рдорд╛рд░реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдвреЗрд░ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдбреАрдПрдордПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдк рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдбреАрдбреАрдПрдордПрд╕ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдЫрд╡рд┐


рдмрд╛рдПрдВ рдлрд▓рдХ рдореЗрдВ com.example.android.hcgallery рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рд╢реЛ рд╣реАрдк рдЕрдкрдбреЗрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ рдбреАрдбреАрдПрдордПрд╕ рдореЗрдВ рд╡реАрдПрдо рд╣реАрдк рдЯреИрдм рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред рдЖрдк рдвреЗрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд╣рд░ рдмрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдЕрдкрдбреЗрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрдЬ GC рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЫрд╡рд┐


рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рдЬреАрд╡рд┐рдд" рд╡рд╕реНрддреБрдПрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ 8 рдПрдордмреА рд╕реЗ рдХрдо рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рддреА рд╣реИрдВ ( рдЖрд╡рдВрдЯрд┐рдд рдХреЙрд▓рдо рджреЗрдЦреЗрдВ)ред рдЕрдм рддрд╕реНрд╡реАрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ, рдФрд░ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдХреИрд╕реЗ рдмрдврд╝рддреА рд╣реИред рдЪреВрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ 13 рддрд╕реНрд╡реАрд░реЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореЗрдореЛрд░реА рд▓реАрдХ рд╕реАрдорд┐рдд рд╣реИред рдПрдХ рддрд░рд╣ рд╕реЗ, рдпрд╣ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рд╣реИ, рдЬреЛ рдХрднреА рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдХрднреА рднреА рдЖрдЙрдЯрдСрдлрдореЗрд░реАрдСрд░рд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рд╣реАрдк рдбрдВрдк


рдбреАрдбреАрдПрдордПрд╕ рдЯреВрд▓рдмрд╛рд░ рдореЗрдВ рдбрдВрдк рдПрдЪрдкреАрдЖрд░рдУрдПрдл рдлрд╝рд╛рдЗрд▓ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ hprof-conv рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо MAT (1.0.1) рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕реЗ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдпрджрд┐ рдЖрдк рдИрдЯреАрдИрдПрд╕ рдХреЗ рд╕рд╛рде MAT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ "рдбрдВрдк рдПрдЪрдкреАрдЖрд░рдУрдПрдл" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдПрдХреНрд▓рд┐рдкреНрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреБрд▓ рдЬрд╛рдПрдЧреАред

MAT рдХреЗ рд╕рд╛рде рдвреЗрд░ рдбрдВрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдг


MAT рдЪрд▓рд╛рдПрдВ рдФрд░ рдЙрд╕ HPROF рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ рдЬреЛ рдЕрднреА рдмрдирд╛рдИ рдЧрдИ рдереАред MAT рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд╣рд░ рдЗрд╕рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рддрд░реАрдХреЗ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реВрдБрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдП - рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдЗрд╕ рджреГрд╢реНрдп рдореЗрдВ, рдЖрдк рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЙрдерд▓реЗ рд╣реАрдк (рдЙрджрд╛рд╣рд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рдХреБрд▓ рдореЗрдореЛрд░реА рдЖрдХрд╛рд░), рдпрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдвреЗрд░ (рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА, рдЬрд┐рдиреНрд╣реЗрдВ рд╡реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ) рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐


рдпрджрд┐ рдЖрдк рдЙрдерд▓реЗ рд╣реАрдк рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмрд╛рдЗрдЯ [] рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реАрд░реНрд╖ рдкрд░ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб 3.0 рдореЗрдВ, рдмрд┐рдЯрдореИрдкреНрд╕ рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЖрдХрд╛рд░ рдмрд┐рдЯрдореИрдк рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╡реЗ рд╣рдорд╛рд░реЗ рдмрд┐рдЯрдореИрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдореЗрдореЛрд░реА рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдЯ [] рд╡рд░реНрдЧ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕> рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЖрдк рдвреЗрд░ рдкрд░ рд░рдЦреЗ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рд╕рднреА рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦреЗрдВрдЧреЗред

рдмрдбрд╝реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЦреЛрд▓реЗрдВред рдирддреАрдЬрддрди, рдЖрдк рд▓рд┐рдВрдХ рдХреА рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ - рдмрд┐рдЯрдореИрдк рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдХреИрд╢!

рдЫрд╡рд┐


MAT рд╕рдЯреАрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд░рд┐рд╕рд╛рд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЬрд╡рд╛рдм рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреВрд░реЗ рдЖрд╡реЗрджрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреИрд╢ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред

рдореЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдвреЗрд░ рдбрдВрдк


рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдореЛрд░реА рд▓реАрдХ рд╣реЛрдиреЗ рдкрд░, рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдвреЗрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдПрдЪрдкреАрдЖрд░рдУрдПрдл рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВ (рдЙрдиреНрд╣реЗрдВ hprof-conv рдпреВрдЯрд┐рд▓рд┐рдЯреА рдХреЗ рд╕рд╛рде рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ)ред

рдпрд╣рд╛рдБ рдЖрдк рдЗрди рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  1. рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ ( рдлрд╝рд╛рдЗрд▓> рдУрдкрди рд╣реАрдк рдбрдВрдк )ред
  2. рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рджреГрд╢реНрдп рдЦреЛрд▓реЗрдВред
  3. рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЗрддрд┐рд╣рд╛рд╕ рджреГрд╢реНрдп (рд╡рд┐рдВрдбреЛ> рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЗрддрд┐рд╣рд╛рд╕) рдореЗрдВ, рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдЯреЛрдХрд░реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдЪреБрдиреЗрдВред
  4. рджреВрд╕рд░реА рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЪрд░рдг 2 рдФрд░ 3 рджреЛрд╣рд░рд╛рдПрдВред
  5. рддреБрд▓рдирд╛ рдЯреЛрдХрд░реА рджреГрд╢реНрдп рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рд▓рд╛рд▓ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдЪрд┐рд╣реНрди) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ


рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЖрд╡рдВрдЯрди рдЯреНрд░реИрдХрд░ рдФрд░ рдбрдВрдк рдвреЗрд░ рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣ рднреА рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ MAT рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк MAT рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:

Source: https://habr.com/ru/post/In116163/


All Articles