V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  atwoodSoInterest  ›  全部回复第 11 页 / 共 11 页
回复总数  207
1 ... 2  3  4  5  6  7  8  9  10  11  
2019-05-24 18:08:31 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@hmzt 这个超出我知识范畴了,是怎么分辨来自内存还是来自寄存器的啊?还请赐教~
2019-05-23 19:09:56 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@jmc891205 哈哈,没关系,难免失手啊。给的资料很棒啊,不过还是没有找到 mov 比 cmp 快的依据。
@hmzt 看了给的资料,发现资料里写的 cmp 和 mov 都是只用 2clock 啊,为什么一个会更快啊,是我漏了什么细节吗?
@yejinmo 这只是个比较 geek 的想法,忽然想求索一下。真正 coding 的时候,可读性的优先级是远高于性能的。
2019-05-23 17:16:13 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@jmc891205 就近把上面示例代码翻译成了 js,发现还是赋值快。

var num = 0;
console.time('判断操作耗时');
for (var i = 0; i < 100000000; i++)
{
if (i > 1000)
{
//没有赋值
}
}
console.timeEnd('判断操作耗时');
console.log('---');
console.time('赋值操作耗时');
for (var i = 0; i < 100000000; i++)
{
num = i;
}
console.timeEnd('赋值操作耗时');
VM1182:10 判断操作耗时: 208.4228515625ms
VM1182:11 ---
VM1182:17 赋值操作耗时: 168.830078125ms
undefined
2019-05-23 17:05:04 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@huluhulu 后面的例子里,去掉了赋值,所以就没有“多一次”的操作了。就只是纯粹的“赋值”和“比较”的效率对比。示例代码里已经把判断分支里的赋值操作注释掉啦
2019-05-23 17:02:58 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@jmc891205 哦~没想到换了语言,结果就不一样了,这真是出乎意料啊。我等下换其他语言试试。我后来的例子里把 “比较后赋值” 换成了 “只比较” ,因为比较后赋值不好比较两个操作的效率。话说,老哥你知道在汇编里,cmp 指令和 mov 指令哪个更快吗?我找了下没找到有相关资料的。
@xenme 开始的那个例子不太好,就是会有这种迷惑的信息。后来的例子熟练使用了高中学的控制变量法,去掉了赋值这个干扰信息,所以就只是 “比较” 和 “赋值” 这两个操作的速度比较。
2019-05-23 16:07:03 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@autoxbc 什么副作用呢?不是太明白哎。
@marcong95 if 分支就是用来测试“比较”操作耗时的,多了一个跳转指令是什么意思啊?
@Counter mvvm 还是要看具体框架的实现机制了吧
2019-05-23 15:34:35 +08:00
回复了 atwoodSoInterest 创建的主题 编程 赋值和比较哪个更快?
@whitev2 如果是被优化了的话,应该是只做判断的更快才对。现在的现象是,直接赋值更快。
1 ... 2  3  4  5  6  7  8  9  10  11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 00:35 · PVG 08:35 · LAX 16:35 · JFK 19:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.