社区讨论
求助,关于O2优化对STL的效果
学术版参与者 9已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @lobyb3ol
- 此快照首次捕获于
- 2023/10/30 04:56 2 年前
- 此快照最后确认于
- 2023/11/04 10:12 2 年前
RT,闲着没事 (其实是摸鱼),到 P1177 测试了一下各大排序函数/容器的速度,结果如下:
| 函数/容器 | 耗时(毫秒) | 占用内存 | 按耗时排名 |
|---|---|---|---|
sort | KB | 第 | |
priority_queue | MB | 第 | |
multiset | MB | 第 | |
qsort | MB | 第 | |
| 网上抄的归并排序 | MB | 第 |
令人意外的是,没有任何优化的快排函数
qsort是最快的。然而,我实在是无聊 (摸鱼停不下来),就开了 O2 优化:
| 函数/容器 | 耗时(毫秒) | 占用内存 | 按耗时排名 |
|---|---|---|---|
sort | KB | 第 | |
priority_queue | MB | 第 | |
multiset | MB | 第 | |
qsort | MB | 第 | |
| 网上抄的归并排序 | MB | 第 |
这时, STL 的函数/容器速度得到了极大的提升。如
priority_queue,在没有进行 O2 优化之前,用时为 毫秒;但在进行了 O2 优化之后,用时仅为 毫秒,提高了一倍不止!现在这个蒟蒻有个问题,bdfs 无果,望各位巨佬解答:
-
为什么 O2 优化对 STL 的容器/算法的用时优化如此明显?
-
除
sort和priority_queue之外,其他函数/容器的占用空间都有提高,除去评测机波动,是否可能与开启 O2 优化有关?如果有可能,原因是?
回复
共 14 条回复,欢迎继续交流。
正在加载回复...