Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄

ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° инструмСнти Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° процСсора Π½Π° Linux машини. ДнСс Π² ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°: temci, uarch-bench, likwid, perf-tools ΠΈ llvm-mca.

ΠžΡ‰Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ:

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄
Π‘Π½ΠΈΠΌΠΊΠ° - Лукас Π‘Π»Π°ΠΆΠ΅ΠΊ β€” Unplash

temci

Π’ΠΎΠ²Π° Π΅ инструмСнт Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π²ΠΈ позволява Π΄Π° сравнитС Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° Π΄Π²Π΅ прилоТСния. ΠŸΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π΅ създадСна ΠΎΡ‚ нСмския студСнт ЙоханСс Π‘Π΅Ρ…Π±Π΅Ρ€Π³Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ я Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Π±Π°ΠΊΠ°Π»Π°Π²ΡŠΡ€ΡΠΊΠ°Ρ‚Π° си Ρ‚Π΅Π·Π° ΠΏΡ€Π΅Π· 2016 Π³. днСс инструмСнт разпространява сС ΠΎΡ‚ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ ΠΏΠΎΠ΄ GNU General Public License.

ЙоханСс искашС Π΄Π° създадС инструмСнт, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° производитСлността Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½Π° систСма Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Π½Π° срСда. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π΅Π΄Π½Π° ΠΎΡ‚ основнитС характСристики Π½Π° temci Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° пСрсонализиранС Π½Π° тСстовата срСда. НапримСр, ΠΌΠΎΠΆΠ΅ Π΄Π°: ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ настройкитС Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° чСстотата Π½Π° процСсора, Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ…ΠΈΠΏΠ΅Ρ€-нишка ΠΈ L1 ΠΈ L2 кСшовС, ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ Ρ‚ΡƒΡ€Π±ΠΎ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° процСсори Intel ΠΈ Ρ‚.Π½. Π—Π° сравнитСлСн Π°Π½Π°Π»ΠΈΠ· temci ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° инструмСнти ΠΏΡŠΡ‚, 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

Π’ΡŠΠ· основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³Π° систСмата Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΎΡ‚Ρ‡Π΅Ρ‚ с Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΈ, Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π²Π° temci ΠΎΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠžΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° temci сС откроява Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° "младост". ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Ρ‚ΠΎΠΉ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° всички Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΈ софтуСрни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. НапримСр, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ΄ macOS ΠΈ някои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π½Π° систСма с ARM процСсор. Π’ Π±ΡŠΠ΄Π΅Ρ‰Π΅ ситуацията ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° броят Π½Π° Π·Π²Π΅Π·Π΄ΠΈΡ‚Π΅ Π² GitHub постСпСнно сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° - Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΎΡ‚Π΄Π°Π²Π½Π° temci Π΄ΠΎΡ€ΠΈ обсъдСни Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ Π½Π° Hacker News.

ΡƒΠ°Ρ€Ρ…-ΠΏΠ΅ΠΉΠΊΠ°

ΠŸΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π° процСсора ΠΎΡ‚ ниско Π½ΠΈΠ²ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΎΡ‚ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° Вравис Даунс (Вравис Даунс). НапослСдък пишС Π±Π»ΠΎΠ³ΠΎΠ²Π΅ Π’ΡŠΠΏΡ€ΠΎΡΠΈ Π½Π° СфСктивността Π½Π° GitHub Pages, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС Π³ΠΎΠ²ΠΎΡ€ΠΈ Π·Π° инструмСнти Π·Π° сравнитСлСн Π°Π½Π°Π»ΠΈΠ· ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π½Π΅Ρ‰Π°, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с тях. ΠšΠ°Ρ‚ΠΎ цяло uarch-bench Π΅Π΄Π²Π° Π·Π°ΠΏΠΎΡ‡Π²Π° Π΄Π° Π½Π°Π±ΠΈΡ€Π° популярност, Π½ΠΎ Π²Π΅Ρ‡Π΅ доста чСсто спомСнати ΠžΠ±ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Hacker News Π² Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈ нишки ΠΊΠ°Ρ‚ΠΎ инструмСнт Π·Π° сравнитСлСн Π°Π½Π°Π»ΠΈΠ·.

Uarch-bench Π²ΠΈ позволява Π΄Π° ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ производитСлността Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, скоростта Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ почистванС YMM рСгистри. Как ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ сравнитСлния Π°Π½Π°Π»ΠΈΠ·, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π² Π΄ΠΎΠ»Π½Π°Ρ‚Π° част Π½Π° страницата.

Π‘Ρ‚Ρ€ΡƒΠ²Π° си Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ uarch-bench, ΠΊΠ°Ρ‚ΠΎ temci, ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° функцията Intel Turbo Boost (тя Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚Π° чСстота Π½Π° процСсора ΠΏΡ€ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅), Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ тСста Π΄Π° са послСдоватСлни.

ЗасСга ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ Π² Ρ€Π°Π½Π΅Π½ Π΅Ρ‚Π°ΠΏ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ uarch-bench няма ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π° докумСнтация ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΡƒ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ - Π½Π°ΠΏΡ€. трудноститС са извСстни Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° Ryzen. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сС ΡΡŠΡ‰ΠΎ само ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π·Π° x86 Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ. ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΎΠ±Π΅Ρ‰Π°Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅ функционалност Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ ΠΈ Π²ΠΈ ΠΊΠ°Π½ΠΈ Π΄Π° сС ΠΏΡ€ΠΈΡΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ към Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

тСчност

Π’ΠΎΠ²Π° Π΅ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти Π·Π° ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° производитСлността Π½Π° Linux машини с процСсори Intel, AMD ΠΈ ARMv8. БъздадСн Π΅ ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°Ρ‚Π° Π½Π° ГСрманското Ρ„Π΅Π΄Π΅Ρ€Π°Π»Π½ΠΎ министСрство Π½Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π½Π°ΡƒΡ‡Π½ΠΈΡ‚Π΅ изслСдвания ΠΏΡ€Π΅Π· 2017 Π³. ΠΈ Π΅ ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ към ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄.

Π‘Ρ€Π΅Π΄ инструмСнтитС Π½Π° likwid ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΠΈΠΌ likwid-powermeter, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° информация ΠΎΡ‚ RAPL рСгистритС Π·Π° консумираната ΠΎΡ‚ систСмата мощност, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ likwid-setFrequencies, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ чСстотата Π½Π° процСсора. Π—Π° пълСн списък ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ HPC изслСдоватСлски ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ. НапримСр с likwid Ρ€Π°Π±ΠΎΡ‚ΠΈ Π³Ρ€ΡƒΠΏΠ° спСциалисти ΠΎΡ‚ РСгионалния изчислитСлСн Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π½Π° унивСрситСта Π² Π•Ρ€Π»Π°Π½Π³Π΅Π½ - ΠΡŽΡ€Π½Π±Π΅Ρ€Π³ (RRZE) Π² ГСрмания. Вя ΡΡŠΡ‰ΠΎ участва Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти.

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄
Π‘Π½ΠΈΠΌΠΊΠ° - КлСм ΠžΠ½ΠΎΠ΄ΠΆΠ΅Ρ…ΡƒΠΎ β€” Unplash

ΠΏΠ΅Ρ€Ρ„-инструмСнти

Π’ΠΎΠ·ΠΈ инструмСнт Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° производитСлността Π½Π° Linux ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΏΠΎΠ΄Π°Π΄Π΅Π½ΠΎ Π‘Ρ€Π΅Π½Π΄ΡŠΠ½ Π“Ρ€Π΅Π³. Π’ΠΎΠΉ Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ DTrace - Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π° Ρ€Π°ΠΌΠΊΠ° Π·Π° прослСдяванС Π·Π° отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² прилоТСния Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Perf-tools Π΅ Π±Π°Π·ΠΈΡ€Π°Π½ Π½Π° подсистСмитС Π½Π° ядрото perf_events ΠΈ ftrace. Π’Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π²ΠΈ позволяват Π΄Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ I/O латСнтността (iosnoop), Π΄Π° прослСдяватС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° систСмнитС повиквания (unccount, funcslower, funcgraph ΠΈ functrace) ΠΈ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ статистичСски Π΄Π°Π½Π½ΠΈ Π·Π° посСщСнията Π½Π° кСша Π½Π° Ρ„Π°ΠΉΠ»Π° (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

Около инструмСнта сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° доста голяма общност (ΠΏΠΎΡ‡Ρ‚ΠΈ 6k Π·Π²Π΅Π·Π΄ΠΈ Π² GitHub). И ΠΈΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ perf-инструмСнти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Netflix. Но ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΡŠΡ‚ сС Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° (Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ напослСдък Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ сС пускат доста рядко). Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΌΡƒ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ - Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ пишС, Ρ‡Π΅ понякога perf-tools причинява ΠΏΠ°Π½ΠΈΠΊΠ° Π½Π° ядрото.

llvm-mca

ΠŸΠΎΠΌΠΎΡ‰Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която ΠΏΡ€Π΅Π΄Π²ΠΈΠΆΠ΄Π° ΠΊΠΎΠ»ΠΊΠΎ изчислитСлни рСсурси Ρ‰Π΅ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π½Π° машинния ΠΊΠΎΠ΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ процСсори. Вя оцСнява Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π·Π° Ρ†ΠΈΠΊΡŠΠ» (IPC) ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

llvm-mca бСшС въвСдСн ΠΏΡ€Π΅Π· 2018 Π³. ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM, която Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° унивСрсална систСма Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅, трансформиранС ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ Π΅, Ρ‡Π΅ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° llvm-mca са Π±ΠΈΠ»ΠΈ Π²Π΄ΡŠΡ…Π½ΠΎΠ²Π΅Π½ΠΈ ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° производитСлността Π½Π° софтуСра IACA ΠΎΡ‚ Intel ΠΈ сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° създадС Π½Π΅Π³ΠΎΠ²Π° Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π°. И спорСд ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° инструмСнта (Ρ‚Π΅Ρ…Π½Π°Ρ‚Π° Π½Π°Π΄Ρ†Π΅Π½ΠΊΠ° ΠΈ количСство) наистина ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° IACA - ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΌΠ΅Ρ€ΠΈ Ρ‚ΡƒΠΊ. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, llvm-mca ΠΏΡ€ΠΈΠ΅ΠΌΠ° само Бинтаксис Π½Π° AT&T, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ с Π½Π΅Π³ΠΎ, Π½Π°ΠΉ-вСроятно Ρ‰Π΅ трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€ΠΈ.

Π—Π° ΠΊΠ°ΠΊΠ²ΠΎ пишСм Π² Π½Π°ΡˆΠΈΡ‚Π΅ Π±Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΈ социални ΠΌΡ€Π΅ΠΆΠΈ:

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ β€žΠœΠ°Ρ‚. МодСл Π½Π° Π£ΠΎΠ»ΡΡ‚Ρ€ΠΈΠΉΡ‚β€œ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Π»Π°ΠΊ

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Как Π΄Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅ Π²Π°ΡˆΠ°Ρ‚Π° Linux систСма: 10 ΡΡŠΠ²Π΅Ρ‚Π°
Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° риска: ΠΊΠ°ΠΊ Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ си

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Книги Π·Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ‚ със систСмна администрация ΠΈΠ»ΠΈ Ρ‚Π΅ΠΏΡŠΡ€Π²Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚
Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π˜Π·Π±ΠΎΡ€: ΠΏΠ΅Ρ‚ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π΅Π΄ΠΈΠ½ курс Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π² ΠΌΡ€Π΅ΠΆΠ°

Π‘Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²Π΅ Π·Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Linux: сСлСкция ΠΎΡ‚ инструмСнти с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ кодНиС ΠΎΡ‚ 1cloud.ru ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌΠ΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° услуга "DNS хостинг". ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° управляватС DNS записи ΠΏΡ€ΠΈ нас Π² Π΅Π΄ΠΈΠ½ Π»ΠΈΡ‡Π΅Π½ Π°ΠΊΠ°ΡƒΠ½Ρ‚.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€