У меня есть пример приложения, которое использует динамически связанную библиотеку library.so
, Я измерял загрузку процессора в примере приложения с помощью команды top. Но он показывает загрузку процессора как примера приложения, так и library.so
в секунду. Но я хочу видеть использование процессора только library.so
, Есть какой-либо способ сделать это? Я слышал, что это достижимо с помощью htop, но не мог понять, как это сделать. Я использовал древовидное представление, но оно показывает несколько процессов в качестве примера процесса приложения. Я не мог понять, какой из них library.so
, Я использую Centos 5.11. Ядро версии 3.2.63-1.el5.elrepo.
Учитывая, что библиотека считается частью вашей программы, одним из способов будет измерение в вашем коде. Следующий минимальный пример реализован на C ++ 11 и выполняет только одну функцию из гипотетической библиотеки:
#include <chrono>
#include <iostream>
#include <hypothetical>
int main() {
using namespace std::chrono;
system_clock systemClock;
system_clock::time_point startingTime{systemClock.now()};
hypothetical::function();
system_clock::duration libraryTime{systemClock.now() - startingTime};
std::cout << "Hypothetical library took " << duration_cast<seconds>(libraryTime).count() << " seconds to run.\n";
return 0;
}
Вам нужно будет распространить это на все функции, которые ваша программа вызывает из вашей библиотеки.