??xml version="1.0" encoding="utf-8" standalone="yes"?>成人国产精品一区二区网站,四季av一区二区凹凸精品,亚洲视频精品在线http://www.aygfsteel.com/murainwood/archive/2009/06/22/55660.html#283594?/dc:creator>?/author>Mon, 22 Jun 2009 07:46:00 GMThttp://www.aygfsteel.com/murainwood/archive/2009/06/22/55660.html#283594

]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?[未登录]http://www.aygfsteel.com/murainwood/archive/2009/05/27/55660.html#278242aaaaaaWed, 27 May 2009 10:10:00 GMThttp://www.aygfsteel.com/murainwood/archive/2009/05/27/55660.html#278242你如果完全了解所有门c?br>你就应该知道Zjava慢了

aaa 2009-05-27 18:10 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?http://www.aygfsteel.com/murainwood/archive/2008/12/08/55660.html#245106murainwoodmurainwoodMon, 08 Dec 2008 13:38:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/12/08/55660.html#245106仅仅是原始类型的重复计算Q确实无法比出快慢?br>我的团队今年q初做了一个项目,涉及到q个问题?2位JVM有效理的HeapQ最好不要超q?G。不然一ơFull GCQ真能把应用l阻塞住?br>两年前写的东西,现在看来Q太q于q稚啦?img src ="http://www.aygfsteel.com/murainwood/aggbug/245106.html" width = "1" height = "1" />

murainwood 2008-12-08 21:38 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?http://www.aygfsteel.com/murainwood/archive/2008/11/19/55660.html#241422路h路hWed, 19 Nov 2008 08:47:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/11/19/55660.html#241422我不是高?
但是我比较相信thinking in java 毕竟是全球最受欢q的java著作
thinking in java里讲到java比c++?
虽然我没做过实验 但我q是比较怿q本书的

路h 2008-11-19 16:47 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?[未登录]http://www.aygfsteel.com/murainwood/archive/2008/05/27/55660.html#203191fengfengTue, 27 May 2008 04:53:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/05/27/55660.html#203191

feng 2008-05-27 12:53 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?http://www.aygfsteel.com/murainwood/archive/2008/05/23/55660.html#202382::Fri, 23 May 2008 05:07:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/05/23/55660.html#202382

: 2008-05-23 13:07 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?http://www.aygfsteel.com/murainwood/archive/2008/03/13/55660.html#185980JonleeJonleeThu, 13 Mar 2008 04:05:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/03/13/55660.html#185980

Jonlee 2008-03-13 12:05 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?http://www.aygfsteel.com/murainwood/archive/2008/03/13/55660.html#185979JonleeJonleeThu, 13 Mar 2008 04:04:00 GMThttp://www.aygfsteel.com/murainwood/archive/2008/03/13/55660.html#185979by Dejan Jelovic

Z么Java永远比C++慢?

耍过JavaE序Q或者用Java码过E序的h都晓得,Java要比用C++写成的原生程序要慢。这是咱用Java时已l承认的事实?
  不过Q很多h惌说服我们说这只不q是暂时的,他们说Java从设计上来讲q不慢,相反Q只是现在的JIT实现相对比较嫩,有很多能优化的地方JITq没有优化到Q拖了后ѝ其实不Ӟ不管JIT们多牛,Java永远要比C++慢?
  
  我想?..
  宣扬Java不慢于C++的h往往是觉得,Q语法)严格的语aQ可以让~译有更大的优化I间。因此,除非你想做h肉编译器优化整个E序Q否则通常都是~译器做得更好?
  q是真的。在数D领域,Fortran仍然胜于C++Q的因为它更严根{不用担心指针瞎搅和Q编译器可以更安心地优化。C++x败Fortran的唯一办法Q就是好好设计一个像Blitz++那样的库?

  试...
  Java可以跟得上C++的地方,是基准试。计vWN个斐波纳契数Q或者运行vLinpackQJava没理׃跟C++跑得一样快。当所有的计算都放在一个类里,q且只用基本的数据cdQ比如说int或者doubleӞJava~译器的能跟得上C++的脚步?

  事实...
  当开始在E序中用对象的时候,Java放松了潜在的优化。这一节会告诉你ؓ什么?

  1. 所有的对象都是从堆里分配的?
  Java从栈里分配的Q就只有基本数据cdQ如intQ或者doubleQ还有对象的引用。所有的对象都是从堆里分配的?
  当有大量语义上是一回事的对象时Q这不成问题。C++同样也是从堆上分配这些对象。但是,当有D义不同的对象时Q这是一个主要的性能杀手?
  什么是对象?Ҏ来说Q就是P代器们。在设计中,我用了很多P代器。别人可能会用复数?DE序员可能会矢量或者点cR处理时间序列的人可能会有时间类。用这些类的hQ无一例外地讨厌把不费旉的栈上分配换成花费固定时间的堆上分配。假如把它放在一个@环里Q就变成了O(n)?了。如果再加一层@环,没错Q又变成O(n^2)?了?

  2. 大量的{换?
  得益于模板,好的C++E序员甚臛_以写于完全没有{换的牛程序。不q,Java没有模板Q所以Java代码L充满了{换?
  对于性能Q它们意味着什么?呃,在Java里所有的转换都是很费时的动态{换。多ҎQ想想你可能会怎么样实现{换的Q?
  最快的Ҏ是Q给每一个类赋g个序P然后用一个矩阉|描述L两个cL否相关的。如果是的话Q需要给指针加上多少的位UL能进行{换。这U方法的伪码看v来应该是q样的:
DestinationClass makeCast (Object o, Class destinationClass) {
Class sourceClass = o.getClass (); // JIT compile-time
int sourceClassId = sourceClass.getId (); // JIT compile-time

int destinationId = destinationClass.getId ();

int offset = ourTable [sourceClassId][destinationClassId];

if (offset != ILLEGAL_OFFSET_VALUE) {
return <object o adjusted for offset>;
}
else {
throw new IllegalCastException ();
}
}
好一堆代码。这只是一个简单的情景——用矩阵来表C类的关pL费了一部分内存Q没有哪个成熟的~译器会q样子做。他们会使用map或者遍历承树Q这样会变得更慢?

  3. 攀升的内存占用?
  JavaE序储存数据占用的内存大概是相当的C++E序的两倍。原因如下:
  1. 启用了垃圾收集的E序一般都比不使用垃圾攉的程序多?0%的内存?
  2. 本来C++里在栈上分配的对象,CJava在堆上分配了?
  3. Java对象比较大,因ؓ所有的对象都有一个虚表,q要加上对(U程Q同步的原生支持?
大的内存映像让程序更大概率被攑ֈ盘的交换区厅R没有什么比交换文g更慢的了?
  4. ~少更细致的控制?
Java原来是作ؓ一U简单的语言来设计的。很多在C++里让E序员控制细节的Ҏ在Java里都被一脚踢开了?
  比如_在C++里可以改q引用的位置(?)。或者一ơ申请和释放很多个对象。或者用指针耍一些小技巧,更快地访问成员?
  5. 没有高层ơ的优化?
  E序员处理高层次的概c而编译器处理剩下的低层次概念。对于程序员来说Q一个叫Matrix的类׃表了比一个叫Vector的类更高层次的概c而对于编译器来说Q这些名字都是符可的一个入口。他们只兛_c里面有哪些函数Q函数里面有哪些语句?
  q样想一下,比如说要实现一个exp(double x, double y)函数Q计出x的yơ幂。对于一个编译器Q它能只看一下这个函敎ͼ然后指出Qexp(exp(x, 2), 0.5)可以优化成x自己吗?当然不行?
  ~译器能做的优化只是语句层面的,而y是在~译器里面的。即使程序员知道两个函数是对U的Q可以把它们都消去,或者函数的调用序只是相反的,除非~译器能只瞄一下语句,然后指出来,不然优化是不可能完成的?
  所以,如果惌完成一个高水^的优化,必须存在某种ҎQ可以让E序员来告诉~译器优化的规则?

  没有哪个行的程序语a/pȝ可以做到q点Q至已知的ҎQ比如微软承诺的语言Q都不能。即便如此,在C++里可以用模板元编E来实现寚w层次对象的优化。时消除,部分求|对称函数调用的消去,和其它可以用模板实现的优化。当Ӟ不是所有的高层ơ优化都可以q样做。ƈ且实现这些东西相当麻烦。但是大多数都可以完成,有h已经用这些技术实C好些旉的库?

  不幸的是QJava没有M元编E的特质Q因此在Java中不会有q种高层ơ的优化?
  所?..

  ׃存在q种语言Ҏ,Java不可能达到C++q种速度。这相当E序上暗CZQ对于要求高性能的Y件和竞争Ȁ烈的COTS舞台上,使用Java不是一U明智的选择。但是因为它和缓的学习曲U,它的定wQ和它庞大的标准库,所以适合开发中型自用和定制Y件?

  附记...
  1. 有h向James GoslingQ谁Qgoogle?..Q提交了很多可以改进Java性能的语aҎ。文本在q里。不q的是,Java语言已经有四q没有改动过了,所以看hq些提议g不会在一夜之间被实现?

  2. 最有可能往Java里加入泛型的是Generic Java。又很不q的是,GJ只是通过在编译时把所有类型信息去掉来支持泛型。所以最后面执行环境看到的,仍然是缓慢的转换?

  3. 垃圾攉的FAQ包含了关于垃圾收集慢于定制分配器的信息(上面W四点)?

  4. q里是一宣U垃圾收集比栈分配的快的文章。但是它的要求是物理内存必须是程序实际需要的内存的七倍之多。还有,它描q的是一Ustop-and-copyQ是不是那种执行C半,然后停下来,把内存拷到另外一块内存,同时清除垃圾的那U方法?Q,而且q不是ƈ发的?

  反馈...
  我收到很多关于这文章的反馈。附上一些典型的评论Q还有我的回{:

  “你q忘C指出在Java里所有的Ҏ都是虚方法,因ؓ没有Z加上final关键字。?
  事实上,不用final关键字不是问题的关键所在,使用者才是。同Ӟ虚函C没有问题Q但是却失去了优化机会。自从JIT们知道怎么样内联虚函数Q这变得不那么显著了?

  JIT可以内联虚函敎ͼ所以Java可以比C++更快?
  C++也可以用JIT~译。不信的可以看看.NET的C++~译器?

  到最后的时候,速度q不重要。电脑浪费了大部份时间在{待用户输入?
  速度仍然很重要。我仍然在等我的W记本启动v来,我在{我的编译器停下来,我还要等Word打开一个超长的文档?
  我在一个金融公司工作。有时候我必须对一个很大的数据集进行模拟。速度在这U情况下都很重要?

  有些JIT可以在栈上分配一些对象?
  当然Q一些?

  你的转换代码看v来很丑。可以在cȝl承层次上检查类?
  首先Q这样只比矩阉|扑ֿ一点点而已?
  W二Q这样只能查扄Q类只占多少Q低层次的细节往往是通过接口来实现的?

  哈,那么我们都应该用汇~?
  不是的,我们都要使用对业务有用的语言。Java提供了庞大的标准库,让很多Q务变得容易,因此Java是伟大的。它比其它所有的语言更容易移植(但ƈ?00%可移植——不同的q_有不同问题)。它h垃圾攉机制Q简化了内存理Q同时也让某些构造如闭包可实现?
  但是Q同ӞJava和所有的语言一P也有瑕疵。在D义的cd上缺支持。它的同步ƈ不是很有效率。它的标准库建立在异常检查之上,把实现拖q了接口。它的性能可以更好。它的数学库有些gh的问题。诸如此cR?

  q些~憾都是大问题吗Q看你用它做什么。因此,在几U语a里,q同它的~译器以及可以选择的类库里选择对你的工E有利的一U?


Jonlee 2008-03-13 12:04 发表评论
]]>
re: 一点小感想Qؓ什么那么多Java慢?Q?[未登录]http://www.aygfsteel.com/murainwood/archive/2007/12/29/55660.html#171594jimmyjimmySat, 29 Dec 2007 09:28:00 GMThttp://www.aygfsteel.com/murainwood/archive/2007/12/29/55660.html#171594

jimmy 2007-12-29 17:28 发表评论
]]>
re: 法求解[未登录]http://www.aygfsteel.com/murainwood/archive/2007/07/08/75287.html#128932PollyPollySun, 08 Jul 2007 14:15:00 GMThttp://www.aygfsteel.com/murainwood/archive/2007/07/08/75287.html#128932

Polly 2007-07-08 22:15 发表评论
]]>
վ֩ģ壺 ˮ| | | | Ƥ| | ӽ| | | | | | | | ߶| ξ| | ͨ| ƺ| | ɽʡ| | | | ޼| | | ֽ| ʤ| | կ| ױ| | | ˱| | | | | | ƽ|