Хочу собрать симпатишный флеймграфчик
Когда-то я уже пытался поискать, научились ли люди это решать (может, кто-нибудь сделал 🚀 blazingly fast 🚀 rewrite it in rust, например), но смог найти только разогнанную версию скрипта, который запускается уже после (и который не так уж нуждался в ускорении, честно говоря)
Заглянул в htop — о, сидит addr2line, грузит нещадно одно ядро. Про его тормоза я инфы не искал — попробуем
Наткнулся на ишуй в тот самый разогнанный скрипт: https://github.com/flamegraph-rs/flamegraph/issues/74 (до момента написания статьи я был уверен, что это ишуй в перфе)
Как выяснилось, кто-то уже делал подход к разгону этого сценария, статейку написал, даже заапстримил патч. И патч даже приняли, вау!
Насколько я понимаю перф, его версия гвоздями прибита к версии ядра. Версия, в которой разогнали перф — 5.16. На виртуалке, где я работаю, разумеется, стоит 5.15. В треде прекрасный человек описал, как собрать патченный перф, но пока я на это не очень готов
Ниже нашлось то, что я искал: rewrite it in rust для addr2line, который ещё и работает быстрее. Хоть автор репозитория и обещает скромно " aims to perform similarly to equivalent existing tools", однако с его версией
Эпилог: у своего вендора нашёл arch образ с 6-й версией ядра. Думаю над переездом
perf script
работает миллион лет на файлике в 60 метров (не сошёлся за овер полтора часа)Когда-то я уже пытался поискать, научились ли люди это решать (может, кто-нибудь сделал 🚀 blazingly fast 🚀 rewrite it in rust, например), но смог найти только разогнанную версию скрипта, который запускается уже после (и который не так уж нуждался в ускорении, честно говоря)
Заглянул в htop — о, сидит addr2line, грузит нещадно одно ядро. Про его тормоза я инфы не искал — попробуем
Наткнулся на ишуй в тот самый разогнанный скрипт: https://github.com/flamegraph-rs/flamegraph/issues/74 (до момента написания статьи я был уверен, что это ишуй в перфе)
Как выяснилось, кто-то уже делал подход к разгону этого сценария, статейку написал, даже заапстримил патч. И патч даже приняли, вау!
Насколько я понимаю перф, его версия гвоздями прибита к версии ядра. Версия, в которой разогнали перф — 5.16. На виртуалке, где я работаю, разумеется, стоит 5.15. В треде прекрасный человек описал, как собрать патченный перф, но пока я на это не очень готов
Ниже нашлось то, что я искал: rewrite it in rust для addr2line, который ещё и работает быстрее. Хоть автор репозитория и обещает скромно " aims to perform similarly to equivalent existing tools", однако с его версией
perf script
завершился за 2 минутыЭпилог: у своего вендора нашёл arch образ с 6-й версией ядра. Думаю над переездом
👍2
Если у меня попа съела трусы, а потом я их оттуда вытащил, то попа их
Anonymous Poll
56%
Выплюнула
17%
Высрала
27%
Вы в своём уме?
🥴3👍2
— Сегодня небо такое ясное, ночью даже звёзды может быть видно... А, точно, мы же в Питере
— Угу, тут из звёзд даже солнце редко видят
— Угу, тут из звёзд даже солнце редко видят
🔥4👍1🤩1🌚1👀1
Оказывается, hellblade 2 выходит! 🎉🎉🎉
Каким-то образом ничего про неё не слышал чуть не с анонса, а тут такое
Каким-то образом ничего про неё не слышал чуть не с анонса, а тут такое
Очень тяжело
Навспоминал игр, которые хочу опробовать, не могу решить, с какой начать, В таком состоянии уже с час. А это значит, что необходимо доверить свою жизнь незнакомцам в интернете
Навспоминал игр, которые хочу опробовать, не могу решить, с какой начать, В таком состоянии уже с час. А это значит, что необходимо доверить свою жизнь незнакомцам в интернете
С кайфом сходил поорать в караоке, обзор
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
+ ор в кайф
+ бахнул сакэ
+ нашёл какое-то вкусное рагу с курицей
- голос
💯5
Идея для любителей экстремального программирования: russian_roulette_ptr<T>
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
template <class T, class... Args>
russian_roulette_ptr<T> make_russian_roulette(Args&&... args) {
auto ptr = new T(std::forward<Args>(args)...);
delete ptr;
return russian_roulette_ptr(ptr);
}
Источник вдохновения — русская рулетка в варианте с одним прокручиванием барабана на всех игроков
Аллоцировав объект, мы сразу удаляем его. Если использовать его сразу после удаления, то велик шанс, что выделенная под него память не переиспользуется, и всё сработает нормально. Но чем дольше им пользуемся, тем выше шанс выстрелить себе в ногу. Развлекайтесь!
🤣9🥰3❤1
Кресты на моей кукухе
Идея для любителей экстремального программирования: russian_roulette_ptr<T> template <class T, class... Args> russian_roulette_ptr<T> make_russian_roulette(Args&&... args) { auto ptr = new T(std::forward<Args>(args)...); delete ptr; return ru…
Подсказывают, что я набаговал в багоделательном коде, и надо delete заменить на free, чтоб деструктор не вызывать
👍2