【在 k****y 的大作中提到】 : 胡说八道! : Java10年前的崛起是benefit from the bubble, actually java performance was : very low at that time. But Indi-A3s pump it a lot, so it became popular
m*o
56 楼
每一次这种事情都得是古天乐出面才行,唉
c*e
57 楼
Look who is behind java, one would know why it can be used even by a fool. It's a resource hog, but that won't matter as you can buy a powerful machine from sun, from ibm to run your poor performing code. What's more, anyone may become a java programmer in 21 days as long as he/she wants to.
g*w
58 楼
古天乐好像101所学校开盖了
b*s
59 楼
都吹吧 都来指点江山来了
F*1
60 楼
刘德华是会长的话应该也会管。 曾志伟是会长的话应该也会管,然后被人追骂。
r*y
61 楼
感情java能有今天都是三哥三妹的功劳 你不是印度人吧, 犯不上免费给a3脸上贴金
【在 k****y 的大作中提到】 : 胡说八道! : Java10年前的崛起是benefit from the bubble, actually java performance was : very low at that time. But Indi-A3s pump it a lot, so it became popular
A couple of years ago, someone (pretty high in the management hierarchy) from T.J. Watson said that Java would've died a long time before had IBM stopped supporting it :) 所以任何東西的成功本來就有各種因素夾雜在一起,不是 光光技術強,或者光光哪個公司強力支持就起的來得。所以大家說得都對 :) 另外說 Java的performance,一開始的時候根本就不是一個 concern,因爲它太慢了,並且大 家也沒指望用它實現點 performance-critical的system code。後來JVM的 optimization多了起來,各種技術讓JVM快了很多,很多地方已經接近C/C++的 performance了,這時候大家才開始關心他的performance,並且這時候大的企業級的 project多了起來,OO的performance弊端開始集中跑了出來 (a.k.a,系統級的runtime bloat)。
【在 k****y 的大作中提到】 : 胡说八道! : Java10年前的崛起是benefit from the bubble, actually java performance was : very low at that time. But Indi-A3s pump it a lot, so it became popular
N*7
71 楼
请问你的水平是21 days for dummy出来的吗?如果你把21 days for dummy练出来的也 叫Java Programmer的话,那Java的失败就是有太多这种人了。
machine
【在 c*********e 的大作中提到】 : Look who is behind java, one would know why it can be used even by a fool. : It's a resource hog, but that won't matter as you can buy a powerful machine : from sun, from ibm to run your poor performing code. What's more, anyone : may become a java programmer in 21 days as long as he/she wants to.
【在 k****y 的大作中提到】 : 胡说八道! : Java10年前的崛起是benefit from the bubble, actually java performance was : very low at that time. But Indi-A3s pump it a lot, so it became popular
【在 h******u 的大作中提到】 : A couple of years ago, someone (pretty high in the management hierarchy) : from T.J. Watson said that Java would've died a long time before had IBM : stopped supporting it :) 所以任何東西的成功本來就有各種因素夾雜在一起,不是 : 光光技術強,或者光光哪個公司強力支持就起的來得。所以大家說得都對 :) 另外說 : Java的performance,一開始的時候根本就不是一個 concern,因爲它太慢了,並且大 : 家也沒指望用它實現點 performance-critical的system code。後來JVM的 : optimization多了起來,各種技術讓JVM快了很多,很多地方已經接近C/C++的 : performance了,這時候大家才開始關心他的performance,並且這時候大的企業級的 : project多了起來,OO的performance弊端開始集中跑了出來 (a.k.a,系統級的runtime : bloat)。
It's true excessive object creation can cause JVM performance issue. However , it's fairly straightforward to fix them. It's not like that's a showstopper and you have to go back to C++. In most system, the intensive object creation is contained in a few function/classes. It's fairly easy to profile and optimize. By holding on and reuse the objects carefully, the performance issue can be resolved. It's an optimization step, not a practice necessary in function design. Also, GC can be tuned to improve the performance. For most systems, particularly RDBMS, bottleneck is typically on the DB.
在实时系统需要处理大数据的时候JVM的performance的确是一个问题。object越来越多 ,没有足够的时间GC,而且内存越大,GC的时候越长,Whole world freeze的时间也就 越长。这方面用C/C++,可以用内存加指针,不需要create object,也不需要free,的 确比Java强。 一般的Web Application没那么高的实时性要求,当然看不起来java的weak point。
However to practice
【在 g*****g 的大作中提到】 : It's true excessive object creation can cause JVM performance issue. However : , it's fairly straightforward to fix them. It's not like that's a : showstopper and you have to go back to C++. In most system, the intensive : object creation is contained in a few function/classes. It's fairly easy to : profile and optimize. By holding on and reuse the objects carefully, the : performance issue can be resolved. It's an optimization step, not a practice : necessary in function design. Also, GC can be tuned to improve the : performance. For most systems, particularly RDBMS, bottleneck is typically : on the DB. :
c*e
114 楼
用c#做web application呢,有同样的问题?
【在 N******7 的大作中提到】 : 在实时系统需要处理大数据的时候JVM的performance的确是一个问题。object越来越多 : ,没有足够的时间GC,而且内存越大,GC的时候越长,Whole world freeze的时间也就 : 越长。这方面用C/C++,可以用内存加指针,不需要create object,也不需要free,的 : 确比Java强。 : 一般的Web Application没那么高的实时性要求,当然看不起来java的weak point。 : : However : to : practice
要看什么样的 application?不是什么程序都好fix的。并且,我前面主要在讲用java 实现的 data-processing system,例如hadoop,Giraph,Hyracks之类,不是简单query db的程序 。这些大程序往往需要在5G的memory上面处理500G的data stream,如果你看到所有的 interface都需要object, 这个程序很难去大大的优化。object pooling是一个很ad- hoc的pattern,并不能fundamentally解决object带来的 overhead。一个很关键的做法 (现在很多系统都在用),就是不让系统里面object的数量随着数据量线形增长,否则 不可能scalable。怎么办,Hyracks用了这种做法:用buffer-based data management 。创建大的buffer,把数据放在buffer里面,而不要create小objects。 类似于region -based memory management。 只有data processor (比如hash function, sorter, grouper ,etc)才create objects,data item千万不能create objects。Hyracks比 Hadoop和Giraph的scalability成数量级的增长, 但是问题就在于这样把原始的C/C++ 的memory management带回到了Java里面,用户coding很不方便,于是就需要develop compiler spport to automatically generate buffer-manipulating code from high -level relational specifications。 All in all,我不是在advocate Java programming 或者 C/C++ programming。Java有 些问题是 Inherent in object-orientation,不是说optimize一下就能消除的。是在 fundamentally optimize就像 Hyracks一样把老旧C/C++的问题带回来了。 这就是 state-of-the-art of Java programming.
However to practice
【在 g*****g 的大作中提到】 : It's true excessive object creation can cause JVM performance issue. However : , it's fairly straightforward to fix them. It's not like that's a : showstopper and you have to go back to C++. In most system, the intensive : object creation is contained in a few function/classes. It's fairly easy to : profile and optimize. By holding on and reuse the objects carefully, the : performance issue can be resolved. It's an optimization step, not a practice : necessary in function design. Also, GC can be tuned to improve the : performance. For most systems, particularly RDBMS, bottleneck is typically : on the DB. :
h*u
199 楼
纯动态也可以改。JIT里面有一种技术叫 On-stack replacement (OSR),就是target 怎 么把在stack上面的method替换成新的,优化过的版本。并且很多research work 都可 以在GC的时候update class type,这样可以在heap reachability analysis把老class 的object替换掉。 反正总之,只要你愿意,没什么不能做的.