精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-11-26
flyingbugs 写道 1。分代式的GC已经是很普遍的技术
2。不管GC如何进步,它的开支仍然是不可忽视的。 很多人还告诉过我 java还比C++快呢(在单纯的执行效率上), 就好像实现了负能炼钢一样。 请不要试图岔开话题,我并没有说Java比C++快。我说的是Java 1.3的GC比1.1的快,并且采用了不同算法,因此instance pooling这种在1.1适用的模式到1.3以后就变成了反模式。正因为不能忽视GC的开销,所以我们应该大量创建短命的对象,避免instance pooling,这样才能缩小GC的范围和难度。 |
|
返回顶楼 | |
发表时间:2004-11-26
MSDOS和Windows XP
和Tuxedo / weblogic就不是一个可以对比的概念。 开发xp中用到的绝大部分技术,在开发dos中是没有的,甚至是没考虑过的。 而Tuxedo / weblogic 其实是个相互竞争和相互促进的。 它们两象两兄弟。 使用到的解决问题的 方法论 和 技术有着很大相同。 |
|
返回顶楼 | |
发表时间:2004-11-26
因此instance pooling这种在1.1适用的模式到1.3以后就变成了反模式。
这要看 你的pool到底是怎么实现和用来做什么了。 可能在ejb中实体bean的这种pool模式确实不是个好的实现。 但你不能否认,如果精心设计过的pool/cache能带来很好的效果。 所以不能说:GC提高了,pool就一定成了反模式。 |
|
返回顶楼 | |
发表时间:2004-11-26
sigh,越说越离题万里。算了,我只想知道,那个被你优化的、内存操作耗用时间达到60%的Java应用,它究竟是干什么用的。能不能请正面回答?
|
|
返回顶楼 | |
发表时间:2004-11-26
我承认 从学术上来说 我不怎么懂 java 不怎么懂j2ee。
我做过一些企业的比较大的项目,用到过 Cics/Tuxedo 还有一些自主开发的中间件框架。 对编译原理和vm技术挺感兴趣,看过Rotor代码,实现过一个商业的编译器和解释器。 对于java我是从一年 说起来快两年前开始正式的使用。我看的理论的书籍并不是很多,大概也就一些设计模式的。 java确实是规范巨多,希望各位大 虾能多多指教啊。 本人说话可能比较不留面子,希望这个论坛的各位兄弟海涵。 呵呵 gigix, 我看过你的blog了, 你确实是个理论很丰富的哥们,这与你当过csdn编辑有这很大的联系,文笔挺好的。 我不是很善意说话,有些话可能有所得罪。不好意思,纯属对技术 而不对人。 |
|
返回顶楼 | |
发表时间:2004-11-26
哦 那个应用啊
是做应用级路由的 也算是 EAI 的一个方面吧。 |
|
返回顶楼 | |
发表时间:2004-11-26
flyingbugs 写道 因此instance pooling这种在1.1适用的模式到1.3以后就变成了反模式。
这要看 你的pool到底是怎么实现和用来做什么了。 可能在ejb中实体bean的这种pool模式确实不是个好的实现。 但你不能否认,如果精心设计过的pool/cache能带来很好的效果。 所以不能说:GC提高了,pool就一定成了反模式。 谁说:GC提高了,pool就一定成了反模式? 你传话的时候怎么老是删掉几个词? |
|
返回顶楼 | |
发表时间:2004-11-26
学习的时候关注底层过多,还能把握好整体的人比较少。
我熟悉很多这样的。 |
|
返回顶楼 | |
发表时间:2004-11-26
对于Java应用的性能优化,我赞同前面有位同志说的:第一是不要优化,第二还是不要优化。(这个“不要优化”是专指内存操作而言的,I/O和RPC当然是要尽量优化。)为什么说不要优化?第一是优雅架构和性能优化之间的矛盾,这个讨论过很多次了。但我看这还不是最关键的。关键是,你不能保证自己做的优化有效,这是虚拟机语言和C++之间最大的区别所在。做C++的程序,你知道自己每条语句是在干什么,所以优化肯定是有效的;但做虚拟机语言(就像Java、C#),虚拟机设计通常会参考程序员的常见习惯,所以如果你自己想当然地做些优化,写些不常见的代码,很可能反而被虚拟机弄得更慢,instance pooling就是这样的例子。所以我觉得,除非万不得已,除非有可靠的profile数据作为证据,否则不要对Java的内存操作做优化。
|
|
返回顶楼 | |
发表时间:2004-11-26
flyingbugs:
大家都很希望你详细说明一下你的优化过程 这里并不欺生,只不过比较较真而已 所以一定要看到真凭实据才罢休 |
|
返回顶楼 | |