Ну, да, профиль, но не используйте какой-либо старый профилировщик.
Вы должны смотреть на строки кода, которые находятся в стеке, на хороший процент времени, потому что именно столько вы можете сэкономить, оптимизируя их.
Чтобы найти их, вы должны использовать профилировщик, который
- берет выборки из стекового времени (во время ввода-вывода, а также времени процессора),
- когда вы хотите их (когда это происходит медленно, не всегда),
- и отчеты по строке кода (не только по функции / методу)
- процент выборок, содержащих эту строку (не подсчет, не собственное время, не среднее время - процент ).
Хороший - Увеличение .
Еще один очень простой метод - случайная пауза .