Недавно я создал реализацию процессора кодирования Хаффмана на C++. Я также построил версию GPU в CUDA, чтобы сравнить время, но столкнулся с проблемой при тестировании времени CPU:
При нагрузочном тестировании путем сжатия больших файлов, например текстового файла размером 97 МБ, содержащего почти все буквы алфавита и различные другие символы ascii, моя реализация ЦП займет примерно 8,3 секунды при первом выполнении. После этого время значительно падает до 1,7 секунды. ПРИМЕЧАНИЕ. Я замеряю только подсчет частоты ЦП, а не кодирование строки и запись в файл.
Любые идеи, как это может быть? Я закрываю все указатели файлов и, насколько мне известно, не должен ничего кэшировать.
Дайте мне знать, если нужен какой-либо исходный код, спасибо.