也谈 .NET vs. JAVA

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

-回 《跨平台的客场交锋:.NET vs. JAVA on Linux 》

<跨平台的客场交锋>一文中关于java的几点测试我不敢苟同

1。速度

以下是我的测试结果(我将<跨平台的客场交锋>一文中程序稍做了改动)

运行环境:

Windows 2K 中文版+ sp2 P41.5 /256M

Jdk1.3.1_002

.NET的测试程序

using System;

namespace ConsoleApplication7

{

class test

{

static void Main(string[] args)

{

int temp=1;

DateTime a = DateTime.Now;

for(int i = 1; i <=1000000000; i++)

{

temp += i;

}

DateTime b = DateTime.Now;

TimeSpan c = b - a;

Console.WriteLine(c.TotalMilliseconds);

Console.WriteLine(temp);

}

}

}

Java 的测试程序

public class My

{

public static void main(String args[])

{

long a,b;

int temp=1;

a = System.currentTimeMillis();

for(int i = 1; i <=1000000000; i++)

{

temp += i;

}

b = System.currentTimeMillis();

System.out.println(b - a);

System.out.println(temp);

}

}

测试结果

Dot Net : 2437

Java (-hotspot) : 6141

Java (-classic) : 59796

Java (-server) : 375

(我在JDK1.4.0_01下的结果基本同Jdk1.3.1一至. 有人在JDK1.4.0下得到0的结果,是因为没有 System.out.println(temp)一句,计算过程都被优化掉了)

第二个测试,我将上面的程序中temp+=i改为temp*=i,结果如下:

Dot Net : 10234

Java (-hotspot) : 21109

Java (-classic) : 59984

Java (-server) : 9625

这些结果意味着什么,我想我也不必多说。

同样的计算在Delphi 6 下的结果:

加法:1514

乘法: 9797

Delphi 程序

program my;

{$APPTYPE CONSOLE}

uses

SysUtils,DateUtils;

var

i,temp:integer;

b,e:TDateTime;

begin

b:=Now();

for i:=1 to 1000000000 do

temp:=temp*i;

e:=Now();

writeln(MilliSecondsBetween(b,e));

end.

同样的计算在C++ 下的结果:

VC7.0

加法:1390

乘法:10281

BCB6.0

加法:1422

乘法:9641

c++程序

#include <windows.h>

#include <stdio.h>

int main(int argc, char* argv[])

{

int b,e;

int temp=1;

b = GetTickCount();

for(int i = 1; i <=1000000000; i++)

{

temp += i;

}

e=GetTickCount();

printf("%d",e-b);

printf("\n%d",temp);

return 0;

}

(注:以上程序均为Release版,速度优化)

2。LINUX和Windows下Java的编译结果不同?

我没有安装Linux,没法对比两个平台的编译结果是否不同,

但我相信出现这种结果是有原因的,但我很难相信是由于平台

问题。我不知道作者是否检查过两个平台上jdk的版本是否一致。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航