社区
Delphi
帖子详情
★★★关于语句速度优化的问题,请高手赐教!★★★
crossbow
2003-10-20 11:29:26
请高手赐教:
if x <= y + 1 then
//...
if x < y + 2 then
//...
在Object Pascal编译器中这两个语句哪一个速度更快?依据是什么?如果能用汇编讲解更好,谢谢!
...全文
27
13
打赏
收藏
★★★关于语句速度优化的问题,请高手赐教!★★★
请高手赐教: if x <= y + 1 then //... if x < y + 2 then //... 在Object Pascal编译器中这两个语句哪一个速度更快?依据是什么?如果能用汇编讲解更好,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crossbow
2003-10-22
打赏
举报
回复
谢谢!我实在太差,还需要实实在在地好好学习...
感谢ehom老大!
ehom
2003-10-21
打赏
举报
回复
在可以比较的范围内,基本可以肯定一样
add edx, $02
和
inc edx
的执行时钟周期都为1
指令长度分别为3和1,影响忽略不计
指令之间均不能配对
不过,为什么要这么比较?
ly_liuyang
2003-10-21
打赏
举报
回复
结果是 maozefa(之源)所说的
最好看CPU Window下的代码,看看ASM代码就知道了,
优化在现在的系统中基本上由编译器完成,开发人员的算法高效是关键,不必太看重这类问题,除非你要的代码很讲究效率,这时建议使用BASM,不要用PascalCode了
阿发伯
2003-10-21
打赏
举报
回复
补充声明:以上是我随意想的,如果我用汇编,肯定是类似代码,我想Delphi编译器不会比我笨吧!
ehom
2003-10-21
打赏
举报
回复
mov eax, 00000000h
如果是编译结果当然是5字节,00000000就占了四字节啊
一样快,这里只需要考虑时钟周期,这已经是CPU计算机时间的最小单位了
ehom
2003-10-21
打赏
举报
回复
这不需要理由吧
crossbow
2003-10-21
打赏
举报
回复
那inc edx为什么不是2个字节?谢谢!
crossbow
2003-10-21
打赏
举报
回复
谢谢各位老大的参与,我看了一下Delphi的CPU窗口,两种情况分别为:
inc edx ;一个字节
cmp eax,edx
jnle xxxxxx
add edx,$02 ;两个字节/3个字节?
cmp eax,edx
jnl xxxxxx
结论:我觉得第一种快
另还有一个问题:
mov eax, 00000000h
这句指令占几个字节?书上写5个字节,我不明白,请赐教!
ehom
2003-10-21
打赏
举报
回复
3字节
83C202
后面是寄存器才可能是两字节
SwordGrass
2003-10-21
打赏
举报
回复
gz
crossbow
2003-10-21
打赏
举报
回复
add edx,$02 是两个字节还是3个字节呢?谢谢!
阿发伯
2003-10-20
打赏
举报
回复
第一句应该快一点,理由是:
当<=和<的条件不满足时,分别使用ja和jae跳转,ja,jae的机器码长度相等,而y+1和y+2可能分别用如下代码:
mov eax, y
inc eax
mov eax, y
add eax, 2
很显然inc eax比add eax,2机器码短而且执行效率高多了。
gx
2003-10-20
打赏
举报
回复
gz
精华贴子整理之SQL性能
优化
3
如何加快查询
速度
?
1、升级硬件
2、根据查询条件,建立索引,
优化
索引、
优化
访问方式,限制结果集的数据量。
3、扩大服务器的内存
4、增加服务器CPU个数
5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能
6、在查询Select
语句
中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描的期间将表锁住,禁止其他的联接访问表,后果严重。<
一条HQL的变迁--由584.14s->16.886s
事先申明,本人是菜鸟,口下留情。这个
语句
是用来计算负荷率的。计算的是每天的负荷率(峰电量+谷电量+平电量)/24/最高负荷的。先看看
语句
优化
的过程,
请
高手
解析这些
语句
的差异与优劣。 用词错误!!不叫
优化
,叫纠错(网友教的。。。)。。呵呵……菜鸟给个反面教材而已了。这些是我学习hibernate过程中弄出来的一个东西。。并非真正项目里的……。 (1)先看原始
语句
。 [code="ja...
MS-SQL Server 基础类 - SQL
语句
关于内联汇编的几个技巧
关于内联汇编的几个技巧作者:孙原下载本文示例代码有时我们的程序需要一些很高的执行效率或者执行系统底层的功能模块,这些关键的部分我们可以采用内联汇编直接插入汇编指令来达到我们的要求,以下是几个技巧与大家共同探讨. 1. 内联汇编嵌入VC
语句
:在VC中内联汇编非常方便,只需要按照如下格式__asm{//汇编
语句
}
请
看如下示例代码void CAlcmemDlg::OnButton3(
mysql batch 过长_MYSQL提取非常简单的数据,chrome浏览器响应过长,如何
优化
?
1.经过很多努力,决定用PHP直接生成html表格,貌似是成功了。2.之前等待响应时间的
问题
并没有得到缓解,我更换了phpstudy的环境,确实稳定了很多,不太会再出现xampp那样突然502的情况了。3.感谢两位的回答,虽然只寥寥几句,但对新手的帮助很大,我学会了用fetch_all遍历数据表,并且把数据以数组的方式加载到内存中以供后面读取,和我一开始的for
语句
提取单个值相比,效率高了很多。4...
Delphi
5,387
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章