相同代码为什么java运行时间比c++要长?
本博文的大体的框架是引用了原博文
https://blog.csdn.net/ive_lanco/article/details/81094484
其中有自己的一些资料的整理,然后还有自己的一些搜索。解答这篇博文中的比较难懂的知识点。
1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后jvm读取该类文件的字节,执行相应操作.而C++编译的时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍.即使采用just-in-time compiling (读取类文件字节后,编译成本地机器码)技术,速度也要比C++慢好多.?
1中的讲解的补充:
因为JVM本身就是用C/C++写的,这就意味着想要运行Java,就必须先跑起C/C++。换言之,Java通过JVM编译成C/C++,哪比得上直接写C/C++。这不是贬低Java,有时C/C++开发难度就是很大,很多情况不得已而为之。比如0与1可以实现任何操作系统,但是在开发者的角度上是不可为的。
2)java程序有要从网络上加载类字节,然后执行,这也是导致java运行速度慢的原因. 在这提供一片博文链接:https://blog.csdn.net/ive_lanco/article/details/81094484 在这提供一篇博文链接:https://blog.csdn.net/rickiyeat/article/details/76802085 这篇博文,我们可以鉴赏性的观看,但是如果我们的资历足够的深厚,那么我们可以进行一些讲解 欢迎在我的博文的下方进行留言。 11)jvm本身的一些机制如垃圾回收,类的查找与加载等也是有时间消耗。 不过任何事情都是有两面性,java可能比c、c++慢,但是这个平台为我们屏蔽了很多机器和操作系统的差异性,我们编写java代码基本不用太多考虑机器和操作系统本身的东西。并且有很好的可移植性。比如你在Windows下写的java代码,基本上只需要做很少的修改就可以在Linux下运行了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – JVM是否可以同时运行多个程序?
- Java并发线程池到底设置多大?
- java – android.support.v7.app.ActionBarImplICS.getThem
- java – IllegalStateException:ArrayAdapter要求资源ID为
- 如何调用第三方API实现图片上传。
- java – 无法在Spring Boot 1.3或1.2.5中设置我的自定义fav
- java – SWT文本字段设置和绑定到密钥的RCP命令
- java – OkHttpClient在更新Retrofit到Retrofit 2之后坏了
- java – Kafka KStreams – 处理超时
- Mybatis动态SQL