Пытаясь освежить в памяти некоторые забавы, связанные с многопоточностью / сортировкой, я решил собрать тест Quicksort (написанный на Objective-C), который использует Grand Central Dispatch, чтобы определить, насколько быстрее можно использовать многоядерные машины. .
Это сгенерированный результат:
2011-11-27 13:10:55.595 Quicksort[1583:707] Took 4.731876 seconds to sort 1000000 elements with NO GCD
2011-11-27 13:10:55.670 Quicksort[1583:707] Took 0.070753 seconds to sort 1000000 elements WITH GCD
Это довольно простой алгоритм, использующий Простую версию , упомянутую на странице Википедии:
Я запускаю это на машине i7, поэтому ожидаю увеличения производительности примерно в 8 раз. Вместо этого алгоритм примерно в 60-70 раз быстрее при использовании Grand Central Dispatch.
Это разница вызвана ошибкой кодирования с моей стороны, или есть технические преимущества использования GCD, о которых я просто не знаю?