当前位置: 代码迷 >> 汇编语言 >> 求汇编语言与机器语言、C语言、JAVA执行效率解决方法
  详细解决方案

求汇编语言与机器语言、C语言、JAVA执行效率解决方法

热度:409   发布时间:2016-05-02 04:43:26.0
求汇编语言与机器语言、C语言、JAVA执行效率
比如有道题要算1+1=?,那么分别用JAVA、C语言、ASM、机器语言编写后执行程序,那么这4个程序之间的运行速度之比大概是多少呢?只需要说个大概就行,题目也不一定是1+1,但要说出数值,不要说ASM稍微比机器语言慢一点点这种没有度量标准的话。
------解决方案--------------------
我还想多说几句:
没有绝对意义上最快的程序

我们知道,一个程序往往需要在时间和空间两者做出妥协,即如果一个程序要快,那么它占用的存储就多。然而,现实是,我们的硬件没有无限的存储,而且硬件的存储访问速度是有等级的(寄存器快过L1缓存,L1缓存快过L2缓存,L2缓存快过L3缓存(如果有),最慢的是内存)。因此如果一个程序太大,那么它非但不快,反而更慢,因为它需要访问更慢的存储器。现在的问题就是,我们需要优化程序中哪些地方,显然程序中访问最频繁,调用次数最多的地方更值得我们多“浪费”一些存储器,而其余地方,宁可牺牲一点速度,写得更紧凑,这样总体的性能更好。但是问题来了,我们怎么知道程序中什么地方访问最频繁,调用次数最多(学术上叫做程序的热点)?我们只有反复运行程序,从统计意义上分析,或者根据经验总结。但是我们知道,程序的一次运行,存在偶然性,这和它的输入数据、外部环境都有关系,是不可预知的。所以我们可能写出大多数情况下很快的程序,但是不能写出次次都运行很快的程序。

再者我前面说了,你可以写出在你的电脑上运行很快的程序,或者在大多数人电脑上很快的程序,但是很难写出在所有人的电脑上都运行很快的程序。
------解决方案--------------------
对不同的程序当然比值不一样.
像1+1这样简单的问题, 大家的执行效率都一样, 编译器的优化足够磨平语言间的差异.
  相关解决方案