Я пытаюсь рассчитать пустую функцию
for (size_t round = 0; round < 5; round++) {
cpu_time_start = get_cpu_time();
wall_time_start = get_wall_time();
scan.assign_clusters(epsilon, mu);
cpu_time_end = get_cpu_time();
wall_time_end = get_wall_time();
...
}
Первое время дает 300 секунд, в то время как следующие четыре времени дают 0,000002 секунды. Это указывает на то, что вызов функции void assign_clusters
оптимизирован. Как я могу заставить мою программу каждый раз выполнять этот трудоемкий вызов функции, и все же использовать оптимизацию для остальной части кода?
Обычно я сохраняю результат рассматриваемой функции и затем печатаю его, но так как это void
функция, у меня есть такая же опция?
Я использую следующие флаги оптимизации: -std=c++0x -march=native -O2
Это зависит от того, что требует времени, чтобы исправить ситуацию.
Это может быть вызвано: —
Запуск сервиса может длиться несколько секунд.
Дисковый кеш ускоряется примерно в 20 раз.
Кэш памяти примерно в 6 раз быстрее
Состояние кэширования может быть неограниченным.
Я думаю, что ваш код должен сбросить объект сканирования, чтобы убедиться, что он снова работает
Других решений пока нет …