Если проект совсем новый и идёт активная разработка,
то разработчик уже сам знает, что у него полно технического долга,
и держит весь код в голове.
Разработчку достаточно знать какой из методов самый медленный.
И он сосредоточится на его рефакторинге.
Дефекты в этом случае очевидные.
Когда писал свои рекомендации для новых проектов, то разработчики на них смотрели, но исправляли по своему.
А когда проект устоявщийся, сложный, и разработчик уже не держит в голове контекст.
То профилирование нужно и необходимо.
Если дефект проявляется только на тестовом стенде.
Если для запуска тестов (для воспроизведения) нужно сделать много сложных шагов.
То очевидно, что вся работа по профилированию и рекомендациям по исправлению - на инженере по производительности.
Если есть возможность написать простой тест для разработчика.
Чтобы он мог запустить его и сам всё воспроизвести, то лучше передать разработчику.
Мы старатеся писать тест для разработчика с протым профилем - один поток и 100/1000 повторений.
Такой тест удобно отлаживать, разработчик может поставить точку останова в коде и всё остановится (второго потока теста нет).
А критерием скорости является суммарная длительность выполнения 1000 повторений.
Тесты пишем на JMeter и Gatling, параметризированные.
Поэтому они могут и на localhost разработчика подавать нагрузку и на нагрузочный стенд.
У разработчика просто одна команда для запуска, консольная.
И ещё так сложилось, что SQL запросы, индексы, ... почти всегда правим сами.
У нас самые большие базы данных на стендах. А у разработчиков базы данных пустые, им сложнее.