- Проблема скачка потребления памяти возникает один раз каждые 5–7 запусков.
- Каждый запуск занимает несколько минут.
Gperftools генерирует слишком много выходных файлов, создавая почти каждую секунду автоматически. А моей программе нужно работать несколько минут, а это значит, что выходных файлов слишком много.
Есть ли способ настроить gperftools на создание файла каждые 10 секунд?
Я попробовал переменную окружения HEAP_PROFILE_ALLOCATION_INTERVAL и HEAP_PROFILE_TIME_INTERVAL, но она не работает. gperftools по-прежнему генерирует файл каждые менее секунды, но добавляет некоторые пометки к файлу, созданному «в заданное время». вот так:
Starting tracking the heap
...
Dumping heap profile to heap_profile.0006.heap (476 MB allocated cumulatively, 475 MB currently in use)
Dumping heap profile to heap_profile.0007.heap (5 sec since the last dump)
Dumping heap profile to heap_profile.0008.heap (653 MB allocated cumulatively, 651 MB currently in use)
...
вот мой код:
class MyClass {
public:
MyClass() {
data = new int[1000];
}
~MyClass() {
delete[] data;
}
private:
int* data;
};
int main() {
HeapProfilerStart("heap_profile");
std::vector objects;
for (int i = 0; i < 3; ++i) {
for (int i = 0; i < 100000; ++i) {
objects.push_back(new MyClass());
}
std::this_thread::sleep_for(std::chrono::seconds(2));
}
HeapProfilerStop();
std::cout
Подробнее здесь: https://stackoverflow.com/questions/792 ... eap-profil
Мобильная версия