游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1372|回复: 8

问一下哪个更快?

[复制链接]

41

主题

242

帖子

273

积分

中级会员

Rank: 3Rank: 3

积分
273
发表于 2006-2-20 16:18:00 | 显示全部楼层 |阅读模式
一个垃圾问题
就是当x是个非负变量
if x>0 then 和 if x<>0 then 哪个判定更快?

还有当x as Boolean  ,y as Integer 时

if  x=true then 和 if y=1 then 哪个判定更快?
谢谢大虾赐教。

30

主题

569

帖子

569

积分

高级会员

Rank: 4

积分
569
发表于 2006-2-20 16:31:00 | 显示全部楼层

Re:问一下哪个更快?

你写个程序,分别判断一亿次,都不用计时,就知道那个快了。

13

主题

594

帖子

595

积分

高级会员

Rank: 4

积分
595
发表于 2006-2-20 17:53:00 | 显示全部楼层

Re:问一下哪个更快?

都应该是一样快的

不过第二个应该写成 if  x then 更规范点

1

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-2-20 21:36:00 | 显示全部楼层

Re:问一下哪个更快?(积分1)

1.if x<>0 快

2.if  x=true 快.

一个值同0比较相等是最快的,看看汇编你就能明白了.

8

主题

130

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2006-2-21 10:52:00 | 显示全部楼层

Re:问一下哪个更快?(积分1)

没有任何实际意义。
即使有意义,也都是一个计算机指令。至于测试结果,由于干扰因素过多,不具备任何实际意义。

也就是说,程序的性能,在于你的算法好好坏,架构好坏。应该把你的注意力放在你的算法和架构上。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2006-2-21 11:33:00 | 显示全部楼层

Re:问一下哪个更快?(积分1)

记住一句话:不执行的程序是最快的程序

1

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-2-21 13:34:00 | 显示全部楼层

Re:问一下哪个更快?(积分1)

说几句废话,当时看到这个帖子确实有5楼,6楼的想法,但后来想想,借着这个帖子弄清楚一些基本原理还是有好处的.而且这个问题也有它的实际意义,不在PC上,而是在硬件条件受限制的移动平台上.当然这些平台上不会用VB.实际的测试我没有做过,但是看到一片文章写过J2ME中写两个空循环

for(int i = 0;i<=9999;i++)
{
}

for(int i = 9999;i!=0;i--)
{
}

后者要比前者快10%左右(应该是这个比例,我没记错的话,有兴趣的可以试试).这个数字在移动设备上,是很显著的提升.

还有一个要澄清的,高级语言的IF THEN结构转成汇编可就不是一条指令了.之所以会有快慢,原因也就在这里.

废话完了,大师也不在了,anco这个号就封了.

41

主题

242

帖子

273

积分

中级会员

Rank: 3Rank: 3

积分
273
 楼主| 发表于 2006-2-21 15:17:00 | 显示全部楼层

Re: Re:问一下哪个更快?

谢谢各位了,果然都是大虾。
那个,为什么 if  x then 更规范点?有什么好处?

14

主题

318

帖子

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2006-2-21 18:11:00 | 显示全部楼层

Re: Re: Re:问一下哪个更快?

reity: Re: Re:问一下哪个更快?

谢谢各位了,果然都是大虾。
那个,为什么 if  x then 更规范点?有什么好处?

iF X=True.句子简洁不见得编译器也这样认为。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 11:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表