主题:【文摘】C/C++圣战! -- aircobra
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的工具。
- 相关回复 上下关系4
压缩 13 层
😮你说的是微软的C#吗?这里是指针(pointer)的使用说明。 Highway 字3164 2004-03-09 11:57:06
这倒不知道。多谢! 无斋主人 字197 2004-03-09 14:49:49
😁C#里的pointer不由GC管理。你的想法是正确的。 Highway 字51 2004-03-09 14:55:05
的确如此