Avatar ·

Perfilando código C++ no Linux: como encontrar gargalos e acelerar o programa?

Olá a todos! Escrevo em C++ há bastante tempo, mas nunca me dediquei seriamente ao profiling. Agora me deparei com um problema: meu programa, que processa grandes volumes de dados, está muito lento. Ele faz parsing de arquivos CSV, realiza alguns cálculos matemáticos e grava os resultados em um arquivo binário. Em um conjunto de teste de 500 MB de dados, a execução leva cerca de 4 minutos, mas gostaria de reduzir para 30 segundos. Aqui está um exemplo simplificado do que estou fazendo: ```cpp #include #include #include #include std::vector processData(const std::vector& input) { std::vector result; result.reserve(input.size()); for (size_t i = 0; i < input.size(); ++i) { double val = input[i]; // Alguns cálculos for (int j = 0; j < 1000; ++j) { val = std::sin(val * 1.5) + std::cos(val * 0.7); } result.push_back(val); } return result; } int main() {