Всем доброго времени суток. Хочу оговориться сразу что не надо отсылать к гуглю, уже был там и не без результатов но хочеться узнать и ваше мнение. Задача такая, есть приложение под линукс работает оно на сервере, ну те кто имел радость админить сервы знают что процессорное время штука не дешевая вот и стоит задача снизить нагрузку на проц. Появилась мыслю провести бинамический анализ кода приложения(сорцов нет приложение коммерческое) найти часть кода которая грузит цп и ассемблерным скальпелем поковылять его с целью оптимизации. Реально ли это? Какой софт посоветуете?
Valgrind, или свой велосипед на PIN Toolkit / DynamoRIO. Найти узкое место - возможно. Исправить его имя на руках только бинарник - может и возможно, но купить более производительный сервер - точно выйдет дешевле в конечном итоге.
купить то можно, и в результате повысится стоимость услуг, конкуренция в секторе большая, поэтому и нужер козырь в рукаве. Есть вариант перейти на x64 но это тоже большая работа начиная от установки кучи пакетов перекомпиляции приложений и не факт что весь необходимый софт пойдет под x64
мозг-пожалуй, лучший софт. А что глючит(грузит проц) всегда и при любых обстоятельствах? Накой вам такое коммерческое приложение?
смена не возможна, софт норм, ладно попробую что нить сделать потом отпишусь что вышло. Ващето мне странно слышать такой писимистический настрой, люди крякают софт меняя пару байтов в приложении через винхекс и все пашет
лол. когда пару байт меняют это одно дело, а когда пытаются влепить свой костыль (ака целый кусок кода), на коленке оптимизированный, то это совсем другое дело. Может так случиться что ещё хуже станет. Я конечно не могу точно это сказать, но обычно такие манипуляции без исходных кодов именно так и заканчиваются..
Можете попробовать VTune Amplifier, для линукс он бесплатен. Желательно debug info, можно и без неё, не так информативно будет, но хотспоты вы найдёте.
кроме Valgrind, как варианты можно попробывать : Google Performance Tools (профилировщик от разрабов гугл) GNU Profiler (Гнусный профилирофщег) GNU Coverage testing tool (такой же гнусный , просто позволяет получить более детальный отчет о выполнении приложения)