导航

刚刚看了CSDN关于Java比C++快的帖子~有感~

Posted on 2005-02-04 16:59  Panic  阅读(572)  评论(2编辑  收藏  举报
真长啊~看着真累:(
这两者,包括其他语言如C#一类之间的比较偶完全不感兴趣,没意思,为了商业价值的吹捧和攻击。
M$刚刚推出C#的时候,对Java和C++也进行了铺天盖地的诋毁,也有大量人拿出这样那样的评测报告,试图说明C#比Java更方便,比C++更优秀,现在轮到Sun了,一点都不奇怪。
不过从帖子里的内容和援引的各种链接中,还是能得出一些对开发有益的结论。
    首先是所谓的JIT编译(也许不对,记性不好,见谅),也就是在运行时判定包括CPU在内的硬件性能指标和指令支持,然后使用最有效率的方式进行调用。这 个技术其实是很古老的东西。当M$还没有大行其道,当显卡,声卡等各种硬件还没有统一的业界标准的时候,大量的开发者,尤其是游戏开发者,不得不编写各种 在运行时判定硬件型号和指令支持的代码,在MMX,SSE等的交接时代,这种工作也在所难免。至今,由于硬件的不断推陈出新,接口规范的不断升级,仍然需 要大量的这种代码。在运行时,判定硬件或者程序接口的支持,动态切换代码调用流程,这仍不失为一种极有价值的技术,扩展出去,目前的“换肤”,切换显示语 言等技术的实质,其实和这个是极其相似的。
    然后是所谓CPU对Java byte code的直接支持,其实也是很有益的启发。早期的CPU,并不具备浮点处理能力,需要借助外在的FPU才能有效处理浮点数,到了后来FPU就成为了 CPU不可分割的一部分。目前开发过程中使用的大量基础运算,也有相当一部分被做成卡板,作为CPU的外设对其提供支持,包括显卡,视频采集卡等,也许不 久的将来,那些通用库,也会变成一种“卡板”存在于我们的PC里面,那时候调用像矩阵相乘这种复杂运算也许就只需要区区几个指令周期了~
    最后,任何一种语言,开发工具,平台,都有它固有的不足,各种工具之间的比较,对于开发者来说意义其实不大(但对于这些工具自身的开发者来说意义很大), 无论使用何种工具,无非是尽量表现它有优势的一面,避免其不足的地方,比来比去又有什么意思呢?