Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Net是否为客户端和服务器提供了不同的环境?_Java_.net_Performance - Fatal编程技术网

Java Net是否为客户端和服务器提供了不同的环境?

Java Net是否为客户端和服务器提供了不同的环境?,java,.net,performance,Java,.net,Performance,最近我听到了下面的声明。有人能详细说明一下吗 对于客户端应用程序,Java比.Net具有更好的性能。原因是服务器端(iis?)上的.Net环境与其客户端不同。而Java在两端使用相同的环境。由于框架性能主要在服务端优化,.Net客户端不如.Net服务器端或Java 更新:我相信他还提到了客户端(XP、VISTA)和服务器(Windows2008Server)在.Net方面的区别。这完全没有意义 .NET不是服务器端或客户端框架。在服务器端或客户端上使用一些片段,但它们都是同一个beast的一部分

最近我听到了下面的声明。有人能详细说明一下吗

对于客户端应用程序,Java比.Net具有更好的性能。原因是服务器端(iis?)上的.Net环境与其客户端不同。而Java在两端使用相同的环境。由于框架性能主要在服务端优化,.Net客户端不如.Net服务器端或Java


更新:我相信他还提到了客户端(XP、VISTA)和服务器(Windows2008Server)在.Net方面的区别。这完全没有意义

.NET不是服务器端或客户端框架。在服务器端或客户端上使用一些片段,但它们都是同一个beast的一部分


除了是否正确之外,大多数(99.9999%)的人在一些含糊不清和不可测量的任务上做了像
Y这样的无保留陈述,表现比X好,正如卡林所说,他们令人尴尬地充满了s***。

在客户端操作系统中,你会得到一个并发垃圾收集器。它在绝对时间上较慢,但在用户看来更快,因为它们的暂停时间更短

在服务器操作系统中,可以使用串行垃圾收集器。总体来说速度更快,但暂停应用程序的时间更长

这是旧消息,我不知道它是否仍然是真的


编辑:Java还具有客户端和服务器模式。与.NET不同,它不与操作系统绑定,而是作为命令行参数传递


编辑2:摘自MSDN Magizine,2000年12月

在运行服务器版本的执行引擎(MSCorSvr.dll)的多处理器系统上,托管堆被分成几个部分,每个CPU一个部分。当集合启动时,收集器每个CPU有一个线程;所有线程同时收集它们自己的部分。工作站版本的执行引擎(MSCorWks.dll)不支持此功能

同样,这是旧信息,可能已经更改。

服务器端和客户端的.NET CLR(公共语言运行时)是相同的。NET CLR在概念上与Java VM类似

对于.NET 3.5及更高版本,有一些仅提供了适用于客户端应用程序的.NET API子集,但这只是为了方便减少.NET占用空间。任何受支持的操作系统都可以安装完整的.NET版本


我只能猜测这句话是因为误解了客户机配置文件是什么。

我从来没有向自己证明,一般来说,Java比.NET快。我已经运行了一些我自己的基准测试,表明了完全相反的情况,但即使如此,我也不愿意做这样一个笼统的声明

我可以说,在纯代码执行中,.NET在同一台机器上的执行速度比Java快,至少在我上次费心测试大约2年前。用C#编写的代码执行速度比VB.NET略快,因为C#没有VB.NET的所有类型检查功能

我用来测试的算法基本上是一个字符串解析器,它接受一个作为算术表达式的字符串,将其转换为反向波兰语符号,然后确定答案(很多学校都教过)。即使尽我最大的努力用Java优化代码,我也无法像VB.NET代码那样快地得到它。我记得差异约为10%

也就是说,我没有对GC或其他方面进行基准测试,也从来没有能够挖掘出在真实ish系统中实际测试的良好无偏基准。通常你会看到有人试图证明为什么他们的宗教更好,而他们忽略了任何其他观点。我确信Java在某些方面有更好的算法,可以消除原始代码的执行速度


简言之,当人们做出这样的陈述时,请他们支持。如果他们不能或依赖“人人都知道”,不要把赌注押在他们的陈述上

XP与Windows 2003 server的对比如何?.Net对它们的作用有什么区别吗?不,没有区别,@Yaron Naveh。正如@Jason Punyon所说,“都是同一头野兽。”这基本上是正确的;您遗漏的是该选项是可配置的,并且默认情况下禁用了服务器模式(即使在服务器上)。开关位于
machine.config
web.config
-
configuration/runtime/gcServer
元素中。当Java认为它在服务器和客户端环境中运行时,它还表现出不同的GC行为。