- 1
"Performance is easy. All you need to know is everything" (c) S. Kuksenko (@kuksenk0)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
"Performance is easy. All you need to know is everything" (c) S. Kuksenko (@kuksenk0)
Умеете профилировать программы?
Знаете, что такое flame diagram? Умеете посмотреть стектрейс от входа в тред до какого-нить спинлока в ядре? Смотрите асм своего компилятора или джита? Знаете, какая инструкция сколько занимает?
Умеете по vmstat/iostat или xperf/perf counters увидать проблему и соотнести ее с программой? Используете dtrace голый или с instruments? yourkit? vTune? valgrind? bpf?
Или такие же дебилы, как я?
MAKAKA 20.10.2019 04:14 # 0
guest8 20.10.2019 04:55 # −999
MAKAKA 20.10.2019 18:22 # 0
У жабы есть ключ, чтоб репортовать стеки без safepoint, алсо по AsyncGetStackTraces тоже так работает,но есть нюансы
guest8 20.10.2019 07:33 # −999
Rooster 20.10.2019 10:19 # 0
Rooster 20.10.2019 10:38 # 0
guest8 20.10.2019 10:45 # −999
guest8 20.10.2019 11:05 # −999
gost 20.10.2019 11:38 # +1
guest8 20.10.2019 11:56 # −999
gost 20.10.2019 12:01 # 0
MAKAKA 20.10.2019 14:18 # 0
Для жоба и .NET не актуально обычно, а для нативного кода оч даже. Ну тут ты прав: надо профилить релизную сборку, а PDB надо иметь всегда, иначе как ты будешь разбирать краш релизной сборки?
gost 20.10.2019 14:21 # +1
Принтами.
Ну да, дебаг-версию профилировать смысла особого нет: там бо́льшую часть ресурсов пожрал долгоносик жрут всяческие assert'ы (в том числе и те, которые внутри CRT), плюс зачастую узкие места дебаг-сборки конпелятор способен оптимизировать сам, и делать это вручную — абсолютно бесполезный труд.
MAKAKA 20.10.2019 14:23 # 0
Используешь ли ты какие-то свои эвенты через EWT (раз уж мы про винду говорим) или только готовые?
gost 20.10.2019 14:26 # +1
MAKAKA 20.10.2019 14:28 # 0
>«ETW»
То-есть весь performance toolkit тож лесом?
gost 20.10.2019 14:31 # 0
MAKAKA 20.10.2019 14:38 # 0
https://docs.microsoft.com/ru-ru/visualstudio/profiling/media/diag-tools-cpu-usage-tab.png?view=vs-2019
?
gost 20.10.2019 14:42 # 0
MAKAKA 20.10.2019 14:52 # 0
https://www.ifourtechnolab.com/pics/performance-profiling-in-visual-studio-5.png
?
gost 20.10.2019 14:53 # 0
guest8 20.10.2019 19:58 # −999
Dpyrou_Pycoqpo6_CEMA 20.10.2019 20:37 # 0
А ETW это вообще цыцадминский инструмент.
На бейсике пишешь?
MAKAKA 20.10.2019 14:17 # 0
во-вторых все профилировщики умеют рисовать диаграммы или дерево стектрейсов, и ты можешь увидеть, какая из твоих фунций сильнее всего его дергает.
например тут
http://www.brendangregg.com/FlameGraphs/cpu-mysql-filt.png
видно, что displatch_command БОльшую часть времени делает mysql_parse
Кроме того, функциясми тебе трудно будет узнать, сколько времени ушло на GC, например
MAKAKA 20.10.2019 14:13 # 0
guest8 20.10.2019 14:18 # −999
MAKAKA 20.10.2019 14:19 # 0
А если тормозит только конкретно у одного заказчика или толькона продакшене?
guest8 20.10.2019 14:22 # −999
guest8 20.10.2019 19:50 # −999
guest8 20.10.2019 20:19 # −999
guest8 01.11.2019 23:09 # −999
guest8 01.11.2019 23:20 # −999
Rooster 20.10.2019 10:41 # 0
Да. Ты разве не знал, что программы становятся в два раза медлеенннеее с каждым годом?
MAKAKA 20.10.2019 14:20 # 0
guest8 31.10.2019 21:31 # −999
govninho 01.11.2019 21:12 # 0
guest8 01.11.2019 21:15 # −999
govninho 01.11.2019 21:39 # 0
guest8 01.11.2019 21:50 # −999
govninho 01.11.2019 21:58 # 0
http://claylabs.com/clay
https://github.com/jckarter/clay
В своё время его рекламировали на «Говнокоде» как альтернативу крестам и сишке. На местном жаргоне он назывался «клеем». А «Rust» в те времена называли «питушнёй». Происхождение такого жаргона может объяснить диаграмма:
guest8 01.11.2019 22:00 # −999
govninho 01.11.2019 22:01 # 0
guest8 01.11.2019 22:10 # −999
govninho 01.11.2019 22:12 # 0
govninho 01.11.2019 22:37 # +1
1. «Фуррифокс».
2. «Java».
3. Двойные кавычки в «PHP».
4. Джойны в «MySQL».
5. «Pycharm».
6. «Windows 95» с точки зрения пользователя «Windows 3.1».
7. «Windows XP» с точки зрения пользователя «Windows 2000».
8. «Windows Vista» с точки зрения пользователя «Windows XP».
9. «Windows 10» с точки зрения пользователя «Windows 7».
10. «Skype».
11. Торренты на «Андроиде».
12. «Битрикс».
13. «Ютуб».
14. «VNC».
15. «Bounds checking» с точки зрения сишника.
16. «STL».
17. «Internet Explorer» (чуть не забыл про него, это слишком очевидно).
18. «Javascript».
19. «Eclipse».
20. Фреймворки.
21. «Apache».
22. «Flash».
23. Вычисления с нецелыми числами.
24. «Visual Studio».
Дополняйте.
guest8 01.11.2019 23:08 # −999
guest8 01.11.2019 23:35 # −999
guest8 02.11.2019 00:46 # −999
guest8 02.11.2019 02:13 # −999
pohuinho 01.11.2019 23:09 # 0
guest8 02.11.2019 02:13 # −999
Ruster 02.11.2019 00:13 # 0
https://ok.ru/video/5723523744
guest8 02.11.2019 00:42 # −999
govninho 02.11.2019 00:45 # 0
Ruster 02.11.2019 00:47 # 0
https://i.etsystatic.com/5388888/d/il/136062/710998994/il_340x270.710998994_p5rx.jpg
Booster 02.11.2019 09:31 # 0
P.S. Впервые при регистрации «повтор пароля» был полезен.
MAKAKA 20.10.2019 18:28 # −1
зы: крышесносный чел научился видеть дджавовый бектрейс вместе с нативным
https://www.youtube.com/watch?v=D53T1Ejig1Q
* запилил опцию, чтобы джит не трогал врейм поинтер
* заставил джита высирать мапы
* скормил все в perf (линуксоыый обычный профилер главный) и получил объедененный стек
охуенный
sed 20.10.2019 18:42 # 0
guest8 20.10.2019 18:50 # −999