西西河

主题:【文摘】C/C++圣战! -- aircobra

共:💬26 🌺3 新:
全看分页树展 · 主题 跟帖
家园 的确如此

Java比较缓慢的原因一个是它的JVM,一个是它的过分OO,而.Net的CLR的性能要明显好于JVM,而C#的倾向于C++也给它的性能优势增色不少。

去年年底,我曾经针对同样的Data Mining算法分别用C++、C#和Java来实现以比较它们的性能,发现C++自然是最好的,C#差一些,但是距离不是很大,而Java就太差了。那个实现使用的数据有百万笔交易、平均交易涉及货品种类大约四十,数据总量一百五十兆,使用内存大约五百兆,在一台内存一G的Windows XP Pro上运行,HotSpot使用了服务器选项,内存给到了768M。

您说得对,C#的delegate更象C++的function pointer,而不是Design Patterns里面的delegate;Java的interface只是类的公共对外接口,以利于多态,和delegate没有关系。

其实Java也需要和宿主操作系统的交流,JNI就是为这个目的设计的。网上也有一些从Java访问COM的类库。

COM和Java自然是两类东西,但是COM+和J2EE的结构倒是有互相抄袭之嫌。

说到generic programming,Java 1.5依循的是C++ templete的预编译路子,这样就不需要对JVM的修改,至少对Beta版是这样的;而.Net诸语言是通过扩充CTS/CLR来实现的,好处是可以做到Component一级的templete复用,缺点是CTS/CLR的兼容性,至少目前我手里没有能够反编译.Net Framework 1.2的工具。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河