рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдмреЗрдВрдЪрдорд╛рд░реНрдХ: рдЦреБрд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЪрдпрди

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

рдЕрдзрд┐рдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ:



рддрд╕реНрд╡реАрд░реЗрдВ - рд▓реБрдХрд╛рд╕ рдмреНрд▓реЗрдЬрд╝реЗрдХ - рдЕрдирдкреНрд▓реИрд╢



temci


рдпрд╣ рджреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рджреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬрд░реНрдордиреА рдХреЗ рдПрдХ рдЫрд╛рддреНрд░, рдЬреЛрд╣рд╛рдирд╕ рдмреАрдЪрдмрд░реНрдЧрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ 2016 рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрдирд╛рддрдХ рдХрд╛рд░реНрдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред рдЖрдЬ, рдпрд╣ рдЙрдкрдХрд░рдг GNU рдЬрдирд░рд▓ рдкрдмреНрд▓рд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред

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

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

# compare the run times of two programs, running them each 20 times > temci short exec "sleep 0.1" "sleep 0.2" --runs 20 Benchmark 20 times [####################################] 100% Report for single runs sleep 0.1 ( 20 single benchmarks) avg_mem_usage mean = 0.000, deviation = 0.0 avg_res_set mean = 0.000, deviation = 0.0 etime mean = 100.00000m, deviation = 0.00000% max_res_set mean = 2.1800k, deviation = 3.86455% stime mean = 0.000, deviation = 0.0 utime mean = 0.000, deviation = 0.0 sleep 0.2 ( 20 single benchmarks) avg_mem_usage mean = 0.000, deviation = 0.0 avg_res_set mean = 0.000, deviation = 0.0 etime mean = 200.00000m, deviation = 0.00000% max_res_set mean = 2.1968k, deviation = 3.82530% stime mean = 0.000, deviation = 0.0 utime mean = 0.000, deviation = 0.0 

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

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



uarch-рдмреЗрдВрдЪ


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

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

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдордВрджрд┐рд░ рдХреА рддрд░рд╣ рдпреВрд░реЛрдХ-рдмреЗрдВрдЪ, рдЗрдВрдЯреЗрд▓ рдЯрд░реНрдмреЛ рдмреВрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХреЗ рддрд╣рдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдШрдбрд╝реА рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ) рддрд╛рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реБрд╕рдВрдЧрдд рд╣реЛрдВред

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



likwid


рдпрд╣ Intel, AMD рдФрд░ ARMv8 рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдорд╢реАрдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓рдХрд┐рдЯ рд╣реИред рдпрд╣ 2017 рдореЗрдВ рдЬрд░реНрдорди рд╕рдВрдШреАрдп рд╢рд┐рдХреНрд╖рд╛ рдФрд░ рдЕрдиреБрд╕рдВрдзрд╛рди рдордВрддреНрд░рд╛рд▓рдп рдХреЗ рддрддреНрд╡рд╛рд╡рдзрд╛рди рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

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

рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдЪрдкреАрд╕реА рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдиреБрд╕рдВрдзрд╛рди рдореЗрдВ рд▓рдЧреЗ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд░реНрдордиреА рдореЗрдВ Erlangen-Nuremberg (RRZE) рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдХреНрд╖реЗрддреНрд░реАрдп рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗрдВрджреНрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ likwid рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ред рд╡рд╣ рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЗ рд╕реЗрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реИред





рддрд╕реНрд╡реАрд░реЗрдВ - рдХреНрд▓реЗрдо рдУрдиреЛрдЬреЗрдШреБрдУ - рдЕрдирдкреНрд▓реИрд╢



рдкрд░реНрдлрд╝ рдЙрдкрдХрд░рдг


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

Perf-tools рдХрд░реНрдиреЗрд▓ рд╕рдмрд╕рд┐рд╕реНрдЯрдо perf_events рдФрд░ ftrace рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдЙрдирдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрд░реА (iosnoop) рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ, рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ (рдЕрд╕рдВрдмрджреНрдз, funcslower, funcgraph рдФрд░ рдлрдВрдХреНрд╢рдВрд╕) рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреИрд╢ (cachestat) рдореЗрдВ "рд╣рд┐рдЯ" рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдмрд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 # ./cachestat -t Counting cache functions... Output every 1 seconds. TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB 08:28:57 415 0 0 100.0% 1 191 08:28:58 411 0 0 100.0% 1 191 08:28:59 362 97 0 78.9% 0 8 08:29:00 411 0 0 100.0% 0 9 

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



LLVM-рдПрдорд╕реАрдП


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

llvm-mca рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ 2018 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ llvm-mca рдХреЗ рд▓реЗрдЦрдХ рдЗрдВрдЯреЗрд▓ IACA рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдорд╛рдзрд╛рди рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдереЗ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдХреА рдорд╛рдВрдЧ рдХрд░рддреЗ рдереЗред рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЯреВрд▓ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ (рдЙрдирдХреЗ рдорд╛рд░реНрдХрдЕрдк рдФрд░ рдирдВрдмрд░) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IACA рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ - рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, llvm-mca рдХреЗрд╡рд▓ AT & T рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреНрд╡рд░реНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред



рд╣рдо рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдФрд░ рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

"рдореИрдЯред рд╡реЙрд▓ рд╕реНрдЯреНрд░реАрдЯ рдореЙрдбрд▓ "рдпрд╛ рдХреНрд▓рд╛рдЙрдб рд▓рд╛рдЧрддреЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХреИрд╕реЗ рдХрд░реЗрдВ

рдЕрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрдирд╛: 10 рдЯрд┐рдкреНрд╕
рдЬреЛрдЦрд┐рдо рдХрдо рд╕реЗ рдХрдо: рдХреИрд╕реЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдЦреЛрдирд╛ рдирд╣реАрдВ рд╣реИ

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХреЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рди рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ рдпрд╛ рдмрд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ
рдЪрдпрди: рдкрд╛рдВрдЪ рдХрд┐рддрд╛рдмреЗрдВ рдФрд░ рдПрдХ рдХреЛрд░реНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░



рд╣рдо 1cloud.ru рдкрд░ рдПрдХ рдирд┐рдГрд╢реБрд▓реНрдХ рд╕реЗрд╡рд╛ " DNS рд╣реЛрд╕реНрдЯрд┐рдВрдЧ " рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХрд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рдЕрдкрдиреЗ DNS рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


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


All Articles