问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

回调函数运行时间太长影响了程序性能,怎么办

发布网友 发布时间:2022-05-25 19:55

我来回答

2个回答

热心网友 时间:2024-10-24 21:32

1.记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeep是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。这里有句俗语:让经常执行的路径运行更加高效,而运行稀少的路径正确运行。2.代码先保证正确,然后再考虑优化这并不意味着用8周时间写一个全功能的射线追踪算法,然后用8周时间去优化它。分多步来做性能优化。先写正确的代码,当你意识到这个函数可能会被经常调用,进行明显的优化。然后再寻找算法的瓶颈,并解决(通过优化或者改进算法)。通常,改进算法能显著地改进瓶颈——也许是采用一个你还没有预想到的方法。所有频繁调用的函数,都需要优化。3.我所了解的那些写出非常高效代码的人说,他们优化代码的时间,是写代码时间的两倍。4.跳转和分支执行代价高,如果可能,尽量少用。函数调用需要两次跳转,外加栈内存操作。优先使用迭代而不是递归。使用内联函数处理短小的函数来消除函数调用开销。将循环内的函数调用移动到循环外(例如,将for(i=0;i<100;i++)DoSomething();改为DoSomething(){for(i=0;i<100;i++){…}})。if…elseif…elseif…elseif…很长的分支链执行到最后的分支需要很多的跳转。如果可能,将其转换为一个switch声明语句,编译器有时候会将其转换为一个表查询单次跳转。如果switch声明不可行,将最常见的场景放在if分支链的最前面。5.仔细思考函数下标的顺序。两阶或更高阶的数组在内存中还是以一维的方式在存储在内存中,这意味着(对于C/C++数组)array[i][j]和array[i][j+1]是相邻的,但是array[i][j]和array[i+1][j]可能相距很远。以适当的方式访问存储实际内存中的数据,可以显著地提升你代码的执行效率(有时候可以提升一个数量级甚至)。现代处理器从主内存中加载数据到处理器cache,会加载比单个值的数据。该操作会获取请求数据和相邻数据(一个cache行大小)的整块数据。这意味着,一旦array[i][j]已经在处理器cache中,array[i][j+1]很大可能也已经在cache中了,而array[i+1][j]可能还在内存中。

热心网友 时间:2024-10-24 21:32

使用异步或者代码有问题,或者用多线程去执行就行;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
保温钉保温钉 《纯爱恋歌Ⅰ》txt全集下载 Win10实时防护无法打开怎样关闭? 网上银行添加下挂卡(猪福卡)可以交易吗? 违章显示已处理未交款 和女友闹矛盾,她说分手很多次了。今天我故意发我和前女友照片在空间并发... 我跟我男朋友分手了,我在朋友圈发了朋友送的花,还说重新开始新的恋_百... ...去送东西。他没要,他发了一个朋友圈,大家看看什么意思? 当一个人看着你发一些话在朋友圈故意气他,结果他又把你拉黑了,什么意思... 写以个作文题目为“从明天起做一个……的人” 什么是amdahl定律它的适用范围是什么? 请问下安卓手机cpu频率在多少之间才正常?我手机最大频率1200,有时候看... 阿姆达尔定律的背景 阿姆达尔定律是指什? 阿姆达尔定律的简介 微信重新登陆后,为什么变成新的账号了?- 问一问 同一个换个手机登陆变成个新号了,里面什么都没有了怎么办? 两个微信变成一个登录怎么办? ...用手机短信验证登录之后就变成新账号联系人跟微信零钱全部没有了... 为什么两个微信变成一个了? 我的变成了一个新号? 我的变成了一个新号? 微信为什么重新登录后是个新号? ...这是怎么回事,用手机号码登上又是一个新的,不是我之前微信了... 微信重新登陆后,为什么变成新的账号了? 上海一宅网怎么样 劳卡衣柜质量怎么样啊? 微信重新登陆后,为什么变成新的账号了? 欧派橱柜的付款方式是什么 欧派达刷单软件靠谱吗 计算机组成原理的相关题目,关于amdahl定律。谢谢 阿姆达尔定律对搜索引擎适用吗 经济学阿尔法定律是什么 Amdahl定律是什么 怎么设置可以让别人,打电话是无法接通或是忙音? 三个人结拜6个字的称谓 天龙6人结拜称号大全有哪些? 天龙八部结拜称号只能填两个字 怎么弄成6个字的啊 怎么填 急需_百度... 天龙八部2结拜称号6个女号结拜求好听的称谓名字 求倩女幽魂6个人结拜的称号,搞笑点的 求天龙八部六个女生的结拜称号,要古典一点的! 6人结拜称号,6姐妹结拜天龙八部游戏用个什么样的称号好啊 ,谁帮我们想... 帮忙想一个倩女幽魂的结拜称号、格式为xxx六x之xxx 倩女幽魂6人结拜称号 阿里斯顿热水器一般多长时间清洗内胆和换镁棒合适,可有人家里是阿里斯顿... 阿里斯顿热水器清洗多少钱 阿里斯顿热水器怎么洗了几分钟没热水了 每天吃一颗冰糖会长胖吗 什么是冰糖?一颗冰糖的体积有多大?是不是有大小不一的?有手指大的吗... 1颗普通的单晶体冰糖大约有多少个糖分子?