Profilierung von C++-Code unter Linux: Wie findet man Engpässe?
Hallo Kollegen! Ich schreibe eine hochlastige Anwendung in C++ unter Linux. Ich bin auf ein Problem gestoßen: Das Programm läuft langsamer als erwartet, aber ich kann nicht verstehen, wo genau die Leistung verloren geht. Ich habe versucht, manuelle Zeitmessungen mit
std::chrono einzufügen, aber das macht den Code zu einem Chaos und gibt kein vollständiges Bild.
Hier ist ein vereinfachtes Beispiel meines Codes, der einen großen Datensatz verarbeitet:
#include <vector>
#include <algorithm>
#include <iostream>
void processData(const std::vector<int>& data) {
std::vector<int> result;
for (size_t i = 0; i < data.size(); ++i) {
if (data[i] % 2 == 0) {
result.push_back(data[i] * data[i]);
}
}
// Dann komplexe Berechnungen...
std::sort(result.begin(), result.end());
for (auto& v : result) {
v = v % 1000;
}
}
int main() {
std::vector<int> data(1000000);
std::generate(data.begin(), data.end(), std::ran Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen