测试一下GCC编译器的优化性能

测试⼀下GCC编译器的优化性能
第⼀次编写的测试代码,测试代码,函数直接传值,内部也在拷贝值
1struct PP{
2float x;
3float y;
4float z;
5 };
6
7 PP lots_of_copies(PP a, PP b){
8        PP c;
9        c = b;
ipz208低重心脚轮
10        b = a;
11return c;
12 }
13void lots_of_copies_2(PP a, PP b, PP& c){
14        c = b;
15        b = a;
16 }
17void test_func1()
18 {
19        PP a{1.01, 1.75, 2.45};
20        PP b{1.21, 1.95, 4.25};
21        PP c;
22for(int i = 0; i < 10000000; i++){
24                c = lots_of_copies(a, b);
25        }冷凝水回收装置
26 }
27
28int main()
29 {
30        test_func1();
31return0;
32 }
不优化编译执⾏耗时60毫秒,O1优化编译以后耗时直接降低到2毫秒。30倍以上的性能提升。
第⼆次代码稍微改变⼀下
1struct PP{
2float x;无动力滑翔伞
3float y;
4float z;
5 };
6
7 PP lots_of_copies(PP a, PP b){
8        PP c;
9        c = b;
10        b = a;
11return c;
12 }
13void lots_of_copies_2(PP a, PP b, PP& c){
14        c = b;
15        b = a;
16 }
17void test_func1()
手动榨油机18 {
19        PP a{1.01, 1.75, 2.45};
20        PP b{1.21, 1.95, 4.25};
21        PP c;
22for(int i = 0; i < 10000000; i++){
23//c = lots_of_copies(a, b);
外用药酒
24                lots_of_copies_2(a, b, c);
25        }
26 }
27
28int main()
29 {
30        test_func1();
31return0;
32 }
代码优化主要把函数的返回传值去掉,改为⾛引⽤传递,发现不优化的清空下性能提升到46毫秒,有提升,但是差别不⼤,带优化编译以后的效果是⼀样的。
所以编译器还在其他地⽅做了更⼤的优化,来提升性能
暂时还没想明⽩,记录后续想明⽩了再记录下来

本文发布于:2024-09-25 20:34:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/219416.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:优化   函数   性能   测试代码
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议