Большинство из вас это осознает, но для меня это стало неожиданностью: быстрее сортировать (например) 96 файлов каждый размер 4Mb, чем 6 файлов 64Mb с использованием mergesort (с общим объемом информации) , Я случайно наткнулся на это открытие. Таким образом, возникает вопрос, каков оптимальный размер входного файла для mergesort?Как определить оптимальный размер файла для сортировки слияния?
Я предполагаю, что между временем сортировки (осью y) и количеством файлов (ось x) будет существовать связь между линией завихрения. Есть ли алгоритм, это больше эмпирическое правило или просто попытка установить несколько разных размеров файлов? Очевидные факторы, которые будут влиять на это: * Максимальное количество файлов, которые ОС может открывать одновременно.
* скорость чтения/записи жесткого диска
Любые ссылки приветствуются!
Сколько стоит «путь быстрее»? Учитывали ли вы разницу во времени, необходимую для чтения файлов в ваших измерениях (вам, вероятно, понадобится больший буфер чтения для файлов с 64 МБ, а более крупные файлы, скорее всего, будут фрагментированы)? – Seth 2010-12-04 20:11:43