网站大量收购闲置独家精品文档,联系QQ:2885784924

论反汇编在时间常数优化中的应用.pptx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
反汇编在常数因子优化中的应用 ;程序优化是无止境的,其中常数因子也是决定程序运行快慢的关键之一。;引例:关于memset函数的小实验;分析;分析;分析;memset(field,0,sizeof(field));;常数因子优化;时间常数归类;一、关于调用常数因子的优化;我们常使用inline关键字对代码进行优化,但是,inline关键字对编译器的作用是提示性质的而不是强制性质的。;1、不使用子函数 2、使用宏定义;2、Release模式;二、除法(求余)的优化(预备);除法指令idiv是一种比例时间很大的指令。编译器的设计者也知道这一点。所以大多数情况下编译器都能将常数除法转化为快得多的位运算。 (注:编译器同样也会把特定的乘法转化为位运算,比如乘以2等);比如,对于a/=2(a为32位整数)这句语句在Debug模式下的解释:;正确的方法是, 判断出特殊性, 使用手工的优化方式, 如: ;由于计算机内存是线性的,多维数组的元素在排列为线性序列后存入存储器,如下所示:;由于在结构上需要进行转换,多维数组的引址操作被翻译成了乘法操作。;由于imul是一种比例时间较大的指令,如果能消去这一指令,便能够产生较大幅度的优化。 ;定义表和指针:;这种操作被我称为指针的“行走”操作。使用这个优化有个条件,就是指针变化方式固定。 让我们通过一个例子来了解这种优化的作用。;题意描述:    在N*M的矩阵中,有一些障碍,有一个物体放在某个格子上。它会按照一个时间表向某一方向运动,一个时间单位移动1格。某一秒你可以让它运动,也可以让它静止。问物体最多能运动的长度。    时间表由很多个时间片段构成,在每个时间片断中,物体将向同一方向运动。 数据规模:   50%的数据中,1≤N, M≤200,时间长度(T)≤200;   100%的数据中,1≤N, M≤200,时间片段个数(K)≤200,时间长度(T)≤40000。;这道题有很多做法,其中最优做法是使用单调性降维。 无论用什么方法,都必经一个关键步骤,这就是在不同的时间点间进行状态转移,并且,都要将这一步“批处理”化。 最优做法的单调性降维,以及其他各式各样的优化,如堆和RMQ等,都是基于对这一步骤的渐进时间复杂度的优化??? ;但是,利用“行走”操作,我们完全可以另辟蹊径。 基于此步骤具有的使用优化的典型特点: (1)位于循环最里层,直接影响运行速度; (2)大量使用对数组的变化方式固定的操作,可以用指针“行走”来优化。 虽然最终还是使用“批处理化”的思想,但是这种方法没有把精力用在渐进复杂度的优化上,而转向到了具体的实现上。;本题的移动情况可以靠在移动前进行对变量的初始化实现。 在某个时间段中对前面位置的询问可以用反方向“行走”实现。 对于取址运算中的位运算,可以用强制转换指针的方法消去。 对障碍判断的实现可以用统一变量格式实现。;例:adv1900 (NOI2005);总结 ;欢 迎 提 问;9、春去春又回,新桃换旧符。在那桃花盛开的地方,在这醉人芬芳的季节,愿你生活像春天一样阳光,心情像桃花一样美丽,日子像桃子一样甜蜜。12月-2012月-20Thursday, December 3, 2020 10、人的志向通常和他们的能力成正比例。00:12:2600:12:2600:1212/3/2020 12:12:26 AM 11、夫学须志也,才须学也,非学无以广才,非志无以成学。12月-2000:12:2600:12Dec-2003-Dec-20 12、越是无能的人,越喜欢挑剔别人的错儿。00:12:2600:12:2600:12Thursday, December 3, 2020 13、志不立,天下无可成之事。12月-2012月-2000:12:2600:12:26December 3, 2020 14、Thank you very much for taking me with you on that splendid outing to London. It was the first time that I had seen the Tower or any of the other famous sights. If Id gone alone, I couldnt have seen nearly as much, because I wouldnt have known my way about. 。03 十二月 202012:12:26 上午00:12:2612月-20 15、会当凌绝顶,一览众山小。十二月 2012:12 上午12月-2000:12December 3, 2020 16、如果一个人不知道他要驶向哪头,那么任何风都不是顺风。2020/12/3

文档评论(0)

职教魏老师 + 关注
官方认证
服务提供商

专注于研究生产单招、专升本试卷,可定制

版权声明书
用户编号:8005017062000015
认证主体莲池区远卓互联网技术工作室
IP属地河北
统一社会信用代码/组织机构代码
92130606MA0G1JGM00

1亿VIP精品文档

相关文档