设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
JAVA
›
C++ vs Java 的一些性能对比
1
2
3
/ 3 页
下一页
返回列表
发帖
楼主:
最爱管闲事
C++ vs Java 的一些性能对比
[复制链接]
玉树清风
玉树清风
当前离线
积分
10
2
主题
8
帖子
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
发消息
发表于 2023-4-10 16:00:32
|
显示全部楼层
其实C++的就是正常动态分派的性能了, Java和C#这类由于有JIT,在某些情况下会运行时优化动态分派成偏静态的分派甚至内联, JIT的优势就是有这种黑科技在, 当然也会遇到很多分派情况的性能不如C++的.
而C++更相信用户的手动能力,而不是自己搞些优化trick让用户摸不着头脑. 既然分派情况简单, 就应该让用户根据情况自己if或switch分派, 这样才能性能最大化.
回复
使用道具
举报
山东刘一首
山东刘一首
当前离线
积分
4
1
主题
6
帖子
4
积分
新手上路
新手上路, 积分 4, 距离下一级还需 46 积分
新手上路, 积分 4, 距离下一级还需 46 积分
积分
4
发消息
发表于 2023-4-10 16:00:42
|
显示全部楼层
可喜可贺,java终于超越c++性能好几倍了。
回复
使用道具
举报
刚正笃行
刚正笃行
当前离线
积分
9
1
主题
7
帖子
9
积分
新手上路
新手上路, 积分 9, 距离下一级还需 41 积分
新手上路, 积分 9, 距离下一级还需 41 积分
积分
9
发消息
发表于 2023-4-10 16:00:53
|
显示全部楼层
switch是分支判断,当然也可能优化成查表。而用虚表和查表其实差不多啊……我觉得如果if/switch快了,那只是内联的原因吧……
还是得看汇编以及profile。
不过我觉得日常使用不用顾及那么多,因为不会有这么多低开销小函数需要设计成虚的……Java大概是因为默认虚方法所以久病成良医?
回复
使用道具
举报
人间天堂
人间天堂
当前离线
积分
10
2
主题
7
帖子
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
发消息
发表于 2023-4-10 16:01:27
|
显示全部楼层
因为switch是静态分派,也就可以内联了,减小了函数开销.
回复
使用道具
举报
五好青年
五好青年
当前离线
积分
8
2
主题
6
帖子
8
积分
新手上路
新手上路, 积分 8, 距离下一级还需 42 积分
新手上路, 积分 8, 距离下一级还需 42 积分
积分
8
发消息
发表于 2023-4-10 16:02:06
|
显示全部楼层
没有全局分析的话,虚表指针的值域未知。所以和 if/switch 相比难优化很多。
JIT 是非常后期的东西,所以做虚调用优化也不足为奇。不过 AOT 也不是不能做虚调用优化。
回复
使用道具
举报
君凡
君凡
当前离线
积分
15
2
主题
10
帖子
15
积分
新手上路
新手上路, 积分 15, 距离下一级还需 35 积分
新手上路, 积分 15, 距离下一级还需 35 积分
积分
15
发消息
发表于 2023-4-10 16:02:49
|
显示全部楼层
这么说应该测测-lto咯
我觉得有那个精力写if/switch了,不如直接上模板算了……
我挺好奇的是,JIT到最后是把main函数给重编译了,还是把虚方法优化到对象实例里去了……
回复
使用道具
举报
因为在心中
因为在心中
当前离线
积分
7
0
主题
6
帖子
7
积分
新手上路
新手上路, 积分 7, 距离下一级还需 43 积分
新手上路, 积分 7, 距离下一级还需 43 积分
积分
7
发消息
发表于 2023-4-10 16:03:05
|
显示全部楼层
-lto果然有效, 之前以为链接时优化在单文件编译下没什么效果. 我已经更新了文章. 比较明显的就是第2个测试已经从5.9秒缩短到2秒了.
Java的JIT是分层的, 也就是根据运行次数会调节优化级别, main当然可以动态重编译.
回复
使用道具
举报
月光下的暗
月光下的暗
当前离线
积分
0
0
主题
3
帖子
0
积分
新手上路
新手上路, 积分 0, 距离下一级还需 50 积分
新手上路, 积分 0, 距离下一级还需 50 积分
积分
0
发消息
发表于 2023-4-10 16:04:05
|
显示全部楼层
不要乱说, 除了第3个之外都是C++更快, 而第3个测试C++可以进一步手动优化到最快.
回复
使用道具
举报
没有你的陪伴我好孤单
没有你的陪伴我好孤单
当前离线
积分
9
1
主题
7
帖子
9
积分
新手上路
新手上路, 积分 9, 距离下一级还需 41 积分
新手上路, 积分 9, 距离下一级还需 41 积分
积分
9
发消息
发表于 2023-4-10 16:04:31
|
显示全部楼层
c++的独特优势是不是可以控制内存布局,然后写出cache-friendly的代码?
回复
使用道具
举报
咯
咯
当前离线
积分
14
3
主题
8
帖子
14
积分
新手上路
新手上路, 积分 14, 距离下一级还需 36 积分
新手上路, 积分 14, 距离下一级还需 36 积分
积分
14
发消息
发表于 2023-4-10 16:05:12
|
显示全部楼层
除此之外,还有什么优势呢?我是非科班渣渣,说错勿怪
回复
使用道具
举报
下一页 »
1
2
3
/ 3 页
下一页
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表