gpt4 book ai didi

objective-c - Grand Central Dispatch 为何如此之快? (对于这个快速排序算法)

转载 作者:太空狗 更新时间:2023-10-30 03:53:32 25 4
gpt4 key购买 nike

为了复习一些多线程/排序的乐趣,我决定整理一个 Quicksort 测试(用 Objective-C 编写),它使用 Grand Central Dispatch 来确定利用多核机器的速度有多快。

main.m

QuickSort.m

这是生成的输出:

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

这是一个相当简单的算法,使用维基百科页面上提到的简单版本:

Quicksort on Wikipedia

我在 i7 机器上运行它,因此预计性能提升大约为 8 倍左右。相反,当使用 Grand Central Dispatch 时,该算法快大约 60-70 倍

差异是由我的编码错误造成的,还是我不知道使用 GCD 有技术优势?

最佳答案

你的代码某处有错误,我改了行

    NSLog(@"Took %f seconds to sort %lu elements WITH GCD", duration, NUM_ELEMENTS);

    NSLog(@"Took %f seconds to sort %lu elements WITH GCD", duration, [sorted count]);

现在输出是

2011-11-27 18:40:28.020 qs[37855:707] Took 5.412689 seconds to sort 1000000 elements with NO GCD
2011-11-27 18:40:28.104 qs[37855:707] Took 0.082455 seconds to sort 1 elements WITH GCD

仍在调查为什么...

关于objective-c - Grand Central Dispatch 为何如此之快? (对于这个快速排序算法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8287910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com