为什么java性能比C#好那么多????

同一台电脑,最简单的实验,a++循环执行百亿次,java用时5.8s,C#用时25.4s,为什么相差了40倍那么多???还有java定时器,间隔可以达到1ms一次,而C#... 同一台电脑,最简单的实验,a++循环执行百亿次,java用时5.8s,C#用时25.4s,为什么相差了40倍那么多???
还有java定时器,间隔可以达到1ms一次,而C#最多就16ms,为什么??
展开
 我来答
lrh3321
推荐于2016-05-18 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2125万
展开全部
你代码写的有问题。还有要看你用的编译器,以及相应的优化开关有没开
C#的Timerk控件设计的时候就没想过要精确到1ms。

还有 Debug模式和Release模式下的运行速度是不同的。
追问
不可能有问题啊,代码就是for循环,里面a++就完了。
优化开关真不知道是什么。
都是在release情况下。我也测过VS的debug速度和release速度差不多,eclipse的release比debug快得多。
C#的timer是System.Threading.Timer,最轻量级那个。
java用自定义的线程模拟定时器可以做到1us,而C#调用Windows底层API,能做到100ns
追答
Computational Performance Benchmarks
http://www.tempest-sw.com/benchmark/

把里面的c# 和java代码都下下来,跑PI才好比。空循环没什么意义。还有 C#是要先编译成MSIL再通过JIT变成机器码的。另外,把你的 java版本和 C#版本都贴出来啊,两者性能不可能差这么多。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tofemale9
2019-10-22 · TA获得超过466个赞
知道答主
回答量:204
采纳率:100%
帮助的人:7.8万
展开全部
有这一说法,也许我们只看到JAVA写了许多的桌面软件,而C#写了桌面的话性能惨不忍睹。也不知用C#写的PAINT.NET怎样样了,也许是这个大学的学生写着玩的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-08-28
展开全部
C#最多就16ms?弄错了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
癯月笑浮生
2020-11-18 · TA获得超过2795个赞
知道小有建树答主
回答量:2657
采纳率:76%
帮助的人:449万
展开全部

呵呵,C#现在有2种编译方式:

  1. 先编译为IL字节码,再由CORE CLR虚拟机解释执行

  2. net native技术,直接静态AOT编译为机器码

    而且编译有多种宏开关可以进行编译优化

    而且连代码都不贴。。

    看来是为黑而黑,还黑不到点子上,能跟C#比性能的虚拟机语言还没出生呢

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式