Avatar ·

Linux पर C++ कोड का प्रोफाइलिंग: बाधाएं कैसे खोजें?

नमस्ते सहकर्मियों! मैं Linux पर C++ में एक high-load एप्लिकेशन लिख रहा हूँ। समस्या यह है कि प्रोग्राम अपेक्षा से धीमा चल रहा है, लेकिन मैं समझ नहीं पा रहा कि प्रदर्शन कहाँ खो रहा है। मैंने std::chrono के साथ मैन्युअल समय मापने की कोशिश की, लेकिन इससे कोड गड़बड़ हो जाता है और पूरी तस्वीर नहीं मिलती। यहाँ मेरे कोड का एक सरल उदाहरण है जो बड़े डेटा सेट को प्रोसेस करता है:
#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]);
        }
    }
    // आगे जटिल गणनाएँ...
    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