为什么计算机语言会有性能的差异?

2016-01-06 16:29:43 +08:00
 temberature
8317 次点击
所在节点    程序员
86 条回复
bobuick
2016-01-06 16:39:02 +08:00
因为它们和终极要搞的对象(01)离的太远了, 中间次数转换太多了
yxzblue
2016-01-06 16:40:17 +08:00
看看新头像
temberature
2016-01-06 16:40:59 +08:00
@bobuick 编译之后不都是二进制了吗,感觉理论上可以没区别
KyleMeow
2016-01-06 16:44:38 +08:00
@temberature 生成的汇编代码不同。就像写作文一样,同一件事可以两三百字写完,也能写一本书。
asdwfwqd
2016-01-06 16:46:42 +08:00
例如 java 一次编译,多平台都可以运行,但是是运行在虚拟机里的,性能比不上汇编和 c
thxmem
2016-01-06 16:47:00 +08:00
条条大路通罗马
temberature
2016-01-06 16:47:03 +08:00
@KyleMeow 那是不是编译器写的不够好,就像作文里很多废话
temberature
2016-01-06 16:50:55 +08:00
@asdwfwqd 我理解原因是需要动态决定很多变量,如果只针对一个机器,就可以排除这些因素
KyleMeow
2016-01-06 16:53:56 +08:00
@temberature 不一定。同样是 C 语言的话, Intel 的 icc 就可以产生效率比 gcc 高得多的代码。但是不同语言不能比,思路不同,实现方式也不同。可能 import 一个大包只是为了用一个超级小的功能,但是对象创建和初始化过程必不可少。
cfans1993
2016-01-06 16:55:20 +08:00
两大要点:效率,安全
看你侧重哪一个
jasontse
2016-01-06 16:58:27 +08:00
创造性的东西怎么能说清楚
standin000
2016-01-06 16:59:45 +08:00
你是指编译性能还是写代码性能?个人觉得写代码性能差异大些
airqj
2016-01-06 17:01:03 +08:00
直接挠痒痒和隔着衣服挠痒痒
感觉是一样的吗?
temberature
2016-01-06 17:02:17 +08:00
@KyleMeow 比应该还是可以比的吧,我想问的是语言层面的, import 感觉是更高一级的问题
temberature
2016-01-06 17:02:51 +08:00
@cfans1993 如果只考虑性能呢
temberature
2016-01-06 17:04:09 +08:00
@jasontse 就是不太明白才想问下,不过感觉是有答案的
BeanMrx
2016-01-06 17:05:50 +08:00
简单的说就是机器比人便宜!用人话写程序再翻译成不是人话,总要消耗一些但是值得的!
temberature
2016-01-06 17:06:08 +08:00
@standin000 就是不同语言实现同一件事,理论上可以做到消耗完全一样的时间和资源吗
KyleMeow
2016-01-06 17:09:16 +08:00
@temberature 同样的汇编代码都无法保证消耗一样的时间和资源,除非是单线程的操作系统
msg7086
2016-01-06 17:09:49 +08:00
@temberature 同一件事的意思就是最后的指令完全相同。
是的如果是完全相同的事,消耗完全相同。

然而并不太可能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/248811

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX