рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдлреНрд▓реЗрдо рдЧреНрд░рд╛рдл рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
http://www.brendangregg.com/flamegraphs.html
https://github.com/brendangregg/FlameGraph
рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ @danielmitterdorfer рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╣реБрдИ
cc: @alexfrancoeur @thomasneirynck
рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕реЗ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реНрдЯреЛрд░реЗрдЬ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрдм рдЬрдм рдореИрдВ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдореЗрдВ рд╣реВрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░реВрдВрдЧрд╛ред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдмреАрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдкреАрдкреНрд░реЛрдл рдкреНрд░реЛрдлрд╛рдЗрд▓ https://github.com/axw/pprofbeatред
(рдпрд╣ рдИрдПрд╕ рдФрд░ рдмреАрдЯреНрд╕ рдореЗрдВ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдпрд╛рд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╢рд╛рдпрдж рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣реИред)
рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдЧреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реИ: рдПрдХ рдорд╛рдирдХ рдкреИрдХреЗрдЬ рдЖрдпрд╛рдд рдХрд░реЗрдВ, рдФрд░ рдЖрдк рдПрдХ HTTP рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдкреАрдпреВ рдФрд░ рд╣реАрдк рдкреНрд░реЛрдлрд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЬреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ:
рдореИрдВ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ "рдкреАрдкреНрд░реЛрдл" рд╡реЗрдм рдпреВрдЖрдИ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред
рдЕрдЧрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рддреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП pprof рд╡реЗрдм UI рдХреЗ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ - рдкреНрд░реЗрд░рдгрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдкреАрдкреНрд░реЛрдл рдЧреНрд░рд╛рдл:
рдкреАрдкреНрд░реЛрдл рдлреНрд▓реЗрдордЧреНрд░рд╛рдл:
рдкреАрдкреНрд░реЛрдл рд╢реАрд░реНрд╖ рдЕрдкрд░рд╛рдзреА:
Pprof рд╕реНрд░реЛрдд рдХреЛрдб рдПрдиреЛрдЯреЗрд╢рди:
Netflix Perf рдЯреАрдо, Flamescope рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣ рдЯреВрд▓ рдкреИрдЯрд░реНрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдФрд░ рд╕рдмрд╕реЗрдХрдВрдб рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдореЗрдВ рдлреНрд▓реЗрдордЧреНрд░рд╛рдл рд╡реНрдпреВ рдореЗрдВ рдкреЙрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдПрдХреНрд╕ рдЕрдХреНрд╖ рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп (рдЯреА) рд╣реИ, рд╡рд╛рдИ рдЕрдХреНрд╖ рдЯреА рдХрд╛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╡рд┐рднрд╛рдЬрди рд╣реИред рд╡реЗрдХреНрдЯрд░ рдЬреЛ рд╣реАрдЯрдореИрдк рд░рдВрдЧ рдШрдирддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЙрд╕ X->Y рд╕рдордп рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рдЧрдгрдирд╛ рд╣реИред
рдореИрдВрдиреЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рдХрд╛рд░ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд▓реА рд╣реИ https://github.com/elastic/elastic-charts/issues/519 рдЙрд╕ рдЯреАрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреАрдЫрд╛ рдХрд░рдиреЗ рдкрд░ рдПрдХ рдпреЛрдЧреНрдп рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдПрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдорд╡реАрдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
Netflix Perf рдЯреАрдо, Flamescope рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдпрд╣ рдЯреВрд▓ рдкреИрдЯрд░реНрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдФрд░ рд╕рдмрд╕реЗрдХрдВрдб рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдореЗрдВ рдлреНрд▓реЗрдордЧреНрд░рд╛рдл рд╡реНрдпреВ рдореЗрдВ рдкреЙрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
рдПрдХреНрд╕ рдЕрдХреНрд╖ рд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп (рдЯреА) рд╣реИ, рд╡рд╛рдИ рдЕрдХреНрд╖ рдЯреА рдХрд╛ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╡рд┐рднрд╛рдЬрди рд╣реИред рд╡реЗрдХреНрдЯрд░ рдЬреЛ рд╣реАрдЯрдореИрдк рд░рдВрдЧ рдШрдирддреНрд╡ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЙрд╕ X->Y рд╕рдордп рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ рдЧрдгрдирд╛ рд╣реИред