Redian新闻
>
Matlab中用subplot,要求图像布满整个窗口,为什么只能用imsho
avatar
a*d
2
海能达美国分公司诚聘会计。具体要求:1、会计相关专业,2、熟练的中英文听说读写
能力。3、有工作经验优先、4、良好的沟通能力、负责出账单、协助应收、关帐、编制
财务报表等。公司福利待遇齐全有401K,医疗保险,带薪休假等。工作地点:劳德代尔
堡,佛罗里达 有意者请发邮件到[email protected]/* */
avatar
S*e
3
谈谈感受
人物:
水手:神一样... 一切尽在掌握,从来没有变过语调表情,老婆死了都那样......
新杰,局长,其他处长:孙悟空,很聪明但是基本被人玩
阿九:一看就是要牺牲的人
丁三:一出场就知道是牛逼人,果然很牛逼,是我最喜欢的人物了,
可能因为我跟他长得有点像..*@@*
汉廷:猪头!竟然打女青年主意....
029: 猪一样的首长!
所有女子:都没有特点,都淡能出个鸟来。
卫女士很有味道,但是也没演出个啥
汉廷小秘,莫名其妙的一个人,长得超像《溏心风暴》里的常在心
我一直跟老婆讨论哪个更漂亮,有人看过没,评评理
总体剧情:环环相扣,步步为营,精彩刺激,扣人心弦,结局也很满意。
缺点是有点淡,味道方面远不如潜伏那么多耐人寻味的东西
总的来说很精彩,过后回味不够多
另外:听说新杰演员以前是刘蓓的经纪人?以前看过他演的潜伏2,超级大烂片一个
现在很喜欢这个演员,有些味道,不知道是不是演戏也不一定要科班出身
关键看天分还是随便谁都能演
avatar
k*g
4
说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
的事儿吧。
蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
联系不上啊。所以说现在这个问题还是比较棘手的。
现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
记者又问,如果联系不上那该怎么办。
古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有
意帮助蓝洁瑛举办体面的丧礼,并承担相关费用”。
这话的意思我来解读一下啊,古天乐这是尊重人家家属的意思,是看看蓝洁瑛的姐姐到
底是想要怎么处理,如果说对方有想法的话那肯定会先根据家属的想法了。
如果说真的是联系不到的话那只能古天乐出面把这件事给办了,并且钱全是他掏腰包。
avatar
z*t
5
我对人间词话不感冒的一个主要原因是老王在评论时往往以个人好恶为先,论证武断极
不客观。这里我就举些例子讨论一下。其实作为文人又不是科学家,在文学创作时带有
浓厚的个人喜好色彩是很常见,比如现在很流行的历史穿越小说。但个人觉得文学评论
,既然是评论,还是要讲公道话的。
从词话的全文看,老王的喜好是一目了然。北宋他最推崇欧阳修,南宋他最服膺辛弃疾
。对这两人,老王是毫不吝惜笔墨的,不仅全书摘选这二人的作品最多,而且对他们所
用的褒扬也最多最深。他对李后主的推崇比这两人不相上下,但所提到的次数还是少于
前两者.这里就先看一个欧阳文忠公的例子.
蝶恋花
伫倚危楼风细细,望极春愁,黯黯生天际。草色烟光残照里,无言谁会凭阑意? 拟把
疏狂图一醉,对酒当歌,强乐还无味。衣带渐宽终不悔,为伊消得人憔悴。
其实老王对这首蝶恋花是极力推崇,对最后"衣带渐宽终不悔,为伊消得人憔悴"这两句
尤其赞叹不已,全书据我所记就至少提过三次。可能大家很多人马上会问,这不是柳永
写的吗,怎么算到欧阳修头上了。这里有个公案。其实历史上历代都认为这是柳永的,
但是这首同时也被收入欧阳修的“六一词”。这事还不例外,历来认为是朱
avatar
u*1
6
弗州红叶素有闻,趋车伴友晨曦行。
深林历历缘客舞,山路起伏动群心。
停车仰望山穹上,薄云轻雾有人声。
可惜黄叶不知客,早落青坪待春风。
avatar
s*e
7
mio320的老版本地图有这些文件basemap.fbl usa_waters.fbl
igo8里面没有这2个文件
帮忙介绍一下它们干啥用的? 就是好奇 呵呵
多谢!
avatar
b*i
8
人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
由 不太懂设计电路的人来设计了,更容易了。
Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需
要再用原始的方案来做了,也不需要精通那些原始方案的人了。使用新技术的人站在巨
人的肩膀上,但这并不表示这些使用新技术的人就不如精通原始方案的人。从经济学角
度来讲,社会你用这些模块化的技术来更快地完成任务。也许芯片设计很难,也许芯片
生产的化工知识需要博士学历,但是使用计算机做软件赚几亿的大学辍学生们不见得比
博士笨。他们选择了站在巨人的肩膀上成为更高的人。Java出现后在很多领域取代C++
也是看不见的手决定的。以后大部分人编程的工作会更容易。那个时候仍然有人会Java
,仍然会有人用C++,仍然有人设计芯片,但是真的不表示用C++就比用Java的聪明,或
者贡献更多。
工作需要哪个技术,我们就去学那个技术。
avatar
k*5
9
就是在一个figure中显示多个图像,图像布满整个窗口,图像间只有几pixel的间隔,
我现在只能用imshow把图像显示出来,但imagesc不行,即使程序中我用imagesc,
但是实际显示的结果还是按imshow显示的,而如果我不自己设定figure的位置,高度,
宽度,直接用默认值则用subplot可以显示出imagesc后的结果,这个怎么回事那?请大
牛指点指点,十分感谢!
avatar
g*q
10
古天乐真的是香港演艺圈中的一个奇葩
avatar
k*g
11
呵呵,其实你提到这则并不在《人间词话》的定稿之中,而是在删稿里,所以并不能代
表王国维文艺理论最成熟的部分。
《人间词话》的定稿只有六十四则,与最初的手稿相比,有不少改动,一些不严谨的地
方做了修改(譬如对于南唐二主的评价,对于姜夔的评价,在原手稿中有前后不一致的
地方,但是在定稿中都改动了),同时这六十四的顺序也是刻意安排的。
在删稿中,除了这一则贬柳永的,还有另外一则,是称赞柳永的:
“长调以周、柳、苏、辛最工。美成《浪淘沙慢》二词,精壮顿挫,已开北曲之先声。若
屯田之《八声甘州》,东坡之《水调歌头》,则伫兴之作,格高千古,不能以长调论也。”
在这一则里,王国维把柳永与周、苏、辛相提并论,足见他也意识到了柳永作为宋词大
家的地位,但是在最终的定稿中,这一则连同贬柳永的那一则一起被删除了,所以在《
人间词话》的定稿中,除了三种境界那里引的那句“憔悴”词以外,再无一言提及柳永

这固然从某种程度上体现了王国维对柳永的偏见,但是和他在定稿中评价词的观点是一
致的:
【定稿·三三】词之《雅》、《郑》,在神不在貌。永叔、少游虽作艳语,终有品格。
方之美成,便有淑女与倡伎之别。
周邦彦的艳语
avatar
r*r
12
好诗
avatar
s*e
13
有知道的指点一下吧 多谢

【在 s**********e 的大作中提到】
: mio320的老版本地图有这些文件basemap.fbl usa_waters.fbl
: igo8里面没有这2个文件
: 帮忙介绍一下它们干啥用的? 就是好奇 呵呵
: 多谢!

avatar
w*r
14
问题是,java不是c++的模块化,c++也在做java的事情,也作者很多java不能做的事情,逻
辑论证需要论证的实体能对号入座.
avatar
s*a
15
有古天乐在大家都放心,就算蓝洁瑛死了也有人管
avatar
z*t
16
你的回复写的很好,有水平。这其中涉及了两件很有意思的事。一个是人间词话的版本
问题,的确如你所说,我引的这段并不在最初王国维手订的64则之中,但它又被收录
在现在大部分出版的人间词话里。相关联的第二个问题是那些没有被收64则之中的大
量评论能不能代表王国维最终真实想法,成熟理论.这一点上,我有自己的不同看法。
一.人间词话版本问题
人间词话最初在1908.8.到1909.10.国粹学报上连载,共64则,老王手订
。1926年这64则合印成单行本,俞平伯标点作序。1927年,赵万里将老王的
人间词话删稿和他发表在其他地方的词评共48则,刊载在小说月报上。1927年,
老王自杀.1928年,罗振玉编辑老王遗作时将两者合二为一:64则为上卷,48
则为下卷。
罗的上下卷的编法于是就成为后来的范例了。这之后60多年里,不少人,比如老王的
儿子王幼安,又在老王的遗作和其他的地方发现了新的词评,所以又要改版把新的加进
去。于是现在市面的人间词话一般都分上下卷,上卷是最初的64则,下卷包含了64
则以外老王的其他的词评。多的版本有共收154则的

【在 k***g 的大作中提到】
: 呵呵,其实你提到这则并不在《人间词话》的定稿之中,而是在删稿里,所以并不能代
: 表王国维文艺理论最成熟的部分。
: 《人间词话》的定稿只有六十四则,与最初的手稿相比,有不少改动,一些不严谨的地
: 方做了修改(譬如对于南唐二主的评价,对于姜夔的评价,在原手稿中有前后不一致的
: 地方,但是在定稿中都改动了),同时这六十四的顺序也是刻意安排的。
: 在删稿中,除了这一则贬柳永的,还有另外一则,是称赞柳永的:
: “长调以周、柳、苏、辛最工。美成《浪淘沙慢》二词,精壮顿挫,已开北曲之先声。若
: 屯田之《八声甘州》,东坡之《水调歌头》,则伫兴之作,格高千古,不能以长调论也。”
: 在这一则里,王国维把柳永与周、苏、辛相提并论,足见他也意识到了柳永作为宋词大
: 家的地位,但是在最终的定稿中,这一则连同贬柳永的那一则一起被删除了,所以在《

avatar
t*r
17
软件的不确定性,变化速度 灵活性 导致那种一个芯片可以用到很多场景的事情永远
不会发生。
avatar
o*q
18
真好,对活着的人负责,对死了的人也负责
avatar
l*f
19
瞎说几句感觉
在神不在貌
以为是说作艳语有神与否。。。论周之少深远之致,故语虽工而少新意,跟并刀如水没
关系?
静安先生还是比较推崇温庭筠的
他貌似就是对长调不感冒。。。
小令里 温-韦-冯-后主-欧 觉得评的非常之好阿 推崇纳兰词也跟他这种审美偏好有
关,而根本不屑提陈维崧等人
词话而非词史嘛

【在 k***g 的大作中提到】
: 呵呵,其实你提到这则并不在《人间词话》的定稿之中,而是在删稿里,所以并不能代
: 表王国维文艺理论最成熟的部分。
: 《人间词话》的定稿只有六十四则,与最初的手稿相比,有不少改动,一些不严谨的地
: 方做了修改(譬如对于南唐二主的评价,对于姜夔的评价,在原手稿中有前后不一致的
: 地方,但是在定稿中都改动了),同时这六十四的顺序也是刻意安排的。
: 在删稿中,除了这一则贬柳永的,还有另外一则,是称赞柳永的:
: “长调以周、柳、苏、辛最工。美成《浪淘沙慢》二词,精壮顿挫,已开北曲之先声。若
: 屯田之《八声甘州》,东坡之《水调歌头》,则伫兴之作,格高千古,不能以长调论也。”
: 在这一则里,王国维把柳永与周、苏、辛相提并论,足见他也意识到了柳永作为宋词大
: 家的地位,但是在最终的定稿中,这一则连同贬柳永的那一则一起被删除了,所以在《

avatar
i*6
20
人类的技术发展是一个abstraction的level不断提高的过程。

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
w*s
21
怪不得古天乐接了那么多小广告和电影也没有人骂他
avatar
k*g
22
呵呵,其实王国维对于周邦彦的评价是很挺有意思的,《人间词话》正稿中有六则关于
周邦彦的,其中三则毁誉参半,两则完全是毁而不誉,但是在他的删稿中出现的五则关
于周邦彦的评价,却是每则都在称赞美成(呵呵,所以《人家词话》正稿并不只是为了
发表而削弱攻击性)。《人家词话》正稿刊出后两年,王国维又写了《清真先生遗事》
,笔调一大变,直赞周邦彦:“词中老杜,则非先生不可。”这是后话了。
说说我对“艳语”那则的理解。其实周邦彦虽多闺阁之作,但真正和倡优有关的艳语并
不多,所以如果要列举,就只能首推《少年游·并刀如水》了,王国维认为其词不雅,
区别在于欧阳修或者秦观把男女之情提升到人生问题或者更高的层面去探索,或是直观
男女之情而无生活之欲(因此欧、秦艳语是雅),而周邦彦囿于男女之情而写男女之情
,溺于男女之情,把它写得婉转诱人(因此是郑)。这个就像他正稿第六十二则提到的
那样:
“昔为倡家女,今为荡子妇。荡子行不归,空床难独守。”“何不策高足,先据要路津
?无为久贫贱,轗轲长苦辛。”可谓淫鄙之尤。然无视为淫词、鄙词者,以其真也。五
代、北宋之大词人亦然。非无淫词,读之者但觉其亲切动人。非无鄙词,但

【在 l*****f 的大作中提到】
: 瞎说几句感觉
: 在神不在貌
: 以为是说作艳语有神与否。。。论周之少深远之致,故语虽工而少新意,跟并刀如水没
: 关系?
: 静安先生还是比较推崇温庭筠的
: 他貌似就是对长调不感冒。。。
: 小令里 温-韦-冯-后主-欧 觉得评的非常之好阿 推崇纳兰词也跟他这种审美偏好有
: 关,而根本不屑提陈维崧等人
: 词话而非词史嘛

avatar
h*3
23
说得没有错。这个道理是显而易见的。
Java当初崛起的主要初衷其实是跨平台。但是恰好又做了动态语言的领头羊。很多动态
语言的引入,动摇和改变了传统软件设计的思想。后者的影响力在大型软件系统十分巨
大,甚至可以说,在当年大型企业软件架构里面,Java以及其延伸出来的技术思想是唯
一的银弹。不做企业软件的人,很难体会这点。10多年前,用C/C++开发企业软件唯一
的方法是COM组件或者DLL库来构造。对于大型企业软件来说,是十分可怕的。

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
g*q
24

上。
活该他人气好

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
X*r
25
Java一般不被认为是动态语言。

【在 h********3 的大作中提到】
: 说得没有错。这个道理是显而易见的。
: Java当初崛起的主要初衷其实是跨平台。但是恰好又做了动态语言的领头羊。很多动态
: 语言的引入,动摇和改变了传统软件设计的思想。后者的影响力在大型软件系统十分巨
: 大,甚至可以说,在当年大型企业软件架构里面,Java以及其延伸出来的技术思想是唯
: 一的银弹。不做企业软件的人,很难体会这点。10多年前,用C/C++开发企业软件唯一
: 的方法是COM组件或者DLL库来构造。对于大型企业软件来说,是十分可怕的。
:
: 板。

avatar
s*a
26

上。
香港那么大竟然只有古天乐愿意管

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
n*w
27
nobody think java is dynamical language

【在 X****r 的大作中提到】
: Java一般不被认为是动态语言。
avatar
o*q
28

上。
演艺圈人人都像古天乐就好了

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
b*y
29
java崛起我觉得还有个重要一点,就是sun microsystems 设计这个语言的时候比较严
谨,为了网络设计的。符合了社会发展方向。
avatar
w*s
30

上。
这一下不用担心蓝洁瑛的丧事怎么处理了

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
p*y
31
最近开始悄悄走红哦的functional language正在重复java想当年走过的路。

【在 w********r 的大作中提到】
: 问题是,java不是c++的模块化,c++也在做java的事情,也作者很多java不能做的事情,逻
: 辑论证需要论证的实体能对号入座.

avatar
g*q
32

古天乐是真的大好人

【在 s*****a 的大作中提到】
: 有古天乐在大家都放心,就算蓝洁瑛死了也有人管
avatar
h*3
33
functional language出现得比Java早多了。语言设计太多问题了,成不了气候。首先
设计者就是用数学家的思想去解决一个问题,而非工程师的思想。其次,细节语法问题
太繁琐,比如LISP。光是一层包一层的括号都看死人了,没有可读性。最后,Java拥有
直接上最优秀的虚拟机。有最优秀的一帮人在JVM上做了太多出色的工作。其他任何语
言,包括python在类,都很难接近JVM的效率。网上有很多程序语言的计算效率对比。
除了C/C++,汇编,Fortuan外,python,ruby,php之类语言落后Java都是在2个数量级一
样上。现在大家都在考虑把语言编译成Java bytecode直接上JVM跑,而不自己写虚拟机。

【在 p*****y 的大作中提到】
: 最近开始悄悄走红哦的functional language正在重复java想当年走过的路。
avatar
s*a
34

这事儿放眼演艺界也只有古天乐这个神都黑不动的人敢接

【在 o****q 的大作中提到】
: 真好,对活着的人负责,对死了的人也负责
avatar
h*3
35
具有反射的语言都是动态语言。因为即使它不是“动态”的,都可以用反射功能去实现
成“动态”。

【在 X****r 的大作中提到】
: Java一般不被认为是动态语言。
avatar
o*q
36

人品好啊,而且多地道啊

【在 w*****s 的大作中提到】
: 怪不得古天乐接了那么多小广告和电影也没有人骂他
avatar
z*3
37
而且官方的jvm还不是最好的
linux上的jvm有更牛逼的实现
http://www.azulsystems.com/
这个可以让gc的中断时间在一个很小的范围内
就是不知道用这个虚拟机执行的效率去跟c/c++写的程序做对比会怎样

机。

【在 h********3 的大作中提到】
: functional language出现得比Java早多了。语言设计太多问题了,成不了气候。首先
: 设计者就是用数学家的思想去解决一个问题,而非工程师的思想。其次,细节语法问题
: 太繁琐,比如LISP。光是一层包一层的括号都看死人了,没有可读性。最后,Java拥有
: 直接上最优秀的虚拟机。有最优秀的一帮人在JVM上做了太多出色的工作。其他任何语
: 言,包括python在类,都很难接近JVM的效率。网上有很多程序语言的计算效率对比。
: 除了C/C++,汇编,Fortuan外,python,ruby,php之类语言落后Java都是在2个数量级一
: 样上。现在大家都在考虑把语言编译成Java bytecode直接上JVM跑,而不自己写虚拟机。

avatar
w*s
38

你错了,古天乐不是奇葩,他是好人,好到老将都不去黑他的人

【在 g***q 的大作中提到】
: 古天乐真的是香港演艺圈中的一个奇葩
avatar
m*t
39
r r
avatar
m*o
40

活该没有人骂他

【在 g***q 的大作中提到】
:
: 古天乐是真的大好人

avatar
b*i
41
C++的一个重要弊端是include。这个不解决,就是一个短板。其他短板我回来再说。
我曾经和SUN当年参与Java团队的大牛通过email,在他写的代码基础上进行修改补充。
这对战斗力提高很有帮助。也是从那时候起,我对Java另眼相看了。在Java崛起的时代
,大量的工作从C++转移出来了,因为Java完美解决了几个问题,包括include,也包括
调试程序的技术。其他方面我就不说了,几位大牛都阐述很好。我只是在我要做的领域
必须用java,这个领域用C++就不行。

【在 w********r 的大作中提到】
: 问题是,java不是c++的模块化,c++也在做java的事情,也作者很多java不能做的事情,逻
: 辑论证需要论证的实体能对号入座.

avatar
g*w
42

别的人估计都害怕摊上这种事儿,毕竟想要搞蓝洁瑛的人还在

【在 s*****a 的大作中提到】
:
: 这事儿放眼演艺界也只有古天乐这个神都黑不动的人敢接

avatar
b*e
43
类比缺乏准确性。
用集成电路是为了省钱。
用java为了省劳动力的钱。
用c++为了省服务器的钱。
没有人在乎技术,一切都是为了省钱。

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
s*j
44

如果那样的话以后就没潜规则了

【在 o****q 的大作中提到】
:
: 人品好啊,而且多地道啊

avatar
m*l
45
我刚要回.groovy算是

【在 X****r 的大作中提到】
: Java一般不被认为是动态语言。
avatar
f*q
46

联系不上蓝洁瑛家人,也只有交给古天乐了

【在 w*****s 的大作中提到】
:
: 你错了,古天乐不是奇葩,他是好人,好到老将都不去黑他的人

avatar
a*l
47
其实说来说去都是库函数,各种语言的库函数本来就是很多的,最简单的,很多人可能像
不到能做个a/b是个多么美好的功能.

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
m*o
48

香港娱乐圈能有古天乐,这可真幸福

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
M*6
49
Nice article

板。
[发表自未名空间手机版 - m.mitbbs.com]

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
g*w
50

上。
好,先征求家人意见,然后自己掏钱把事给办了

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
r*r
51
胡说八道。
avatar
s*j
52

上。
古天乐这辈子积了太多德

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
k*y
53
胡说八道!
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
avatar
f*q
54

上。
马上古天乐要登头条了,人太好了

【在 k**g 的大作中提到】
: 说说蓝洁瑛这件事的最新进展吧,不说什么强奸的事儿和以前的事儿,就说说现在眼前
: 的事儿吧。
: 蓝洁瑛已经死亡了,那之后的事儿就是关于蓝洁瑛的这个丧事到底要这么处理。
: 这么处理?肯定是要联系蓝洁瑛的家人啊,据说是蓝洁瑛还有一个姐姐,但现在真的是
: 联系不上啊。所以说现在这个问题还是比较棘手的。
: 现在这件事牵扯到了古天乐,因为古天乐目前是香港演艺人协会的会长。有媒体采访古
: 天乐这个事儿要怎么处理,古天乐说已经让人去找了蓝洁瑛的姐姐,但目前没有联系上。
: 记者又问,如果联系不上那该怎么办。
: 古天乐接了句:“我们会尽一切努力去帮蓝洁瑛家人办理丧事,因为她是我们演艺圈的
: 一份子,但现在最重要的是先要找到她的家人,才知道可以做什么。香港演艺人协会有

avatar
m*l
55


【在 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

avatar
m*o
56
每一次这种事情都得是古天乐出面才行,唉
avatar
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.
avatar
g*w
58
古天乐好像101所学校开盖了
avatar
b*s
59
都吹吧 都来指点江山来了
avatar
F*1
60
刘德华是会长的话应该也会管。
曾志伟是会长的话应该也会管,然后被人追骂。
avatar
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

avatar
h*t
62
玩贪玩蓝月,支持古天乐一把
avatar
r*n
63
1. Functional language语法细节繁琐?LISP,Clojure, Haskell语法比java简单多了。
2. Python虚拟机比JVM慢,主要是因为支持python的动态机制,并不是开发python虚拟
机的
不优秀。
但是LISP的运行效率接近C、c++,更不会比java慢,它是动态语言,
我现在不知道为什么。

机。

【在 h********3 的大作中提到】
: functional language出现得比Java早多了。语言设计太多问题了,成不了气候。首先
: 设计者就是用数学家的思想去解决一个问题,而非工程师的思想。其次,细节语法问题
: 太繁琐,比如LISP。光是一层包一层的括号都看死人了,没有可读性。最后,Java拥有
: 直接上最优秀的虚拟机。有最优秀的一帮人在JVM上做了太多出色的工作。其他任何语
: 言,包括python在类,都很难接近JVM的效率。网上有很多程序语言的计算效率对比。
: 除了C/C++,汇编,Fortuan外,python,ruby,php之类语言落后Java都是在2个数量级一
: 样上。现在大家都在考虑把语言编译成Java bytecode直接上JVM跑,而不自己写虚拟机。

avatar
g*2
64
香港演艺人协会应该有钱吧,不一定是他自掏腰包
avatar
h*u
65
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)。
avatar
l*n
66
Zan 古天乐!!!
avatar
A*g
67
(+ (+3 5) (+ 2 (+ 6 (+7 (* 3 7)))) ) 好读吗?
LISP(像scheme)有解析器,也有编译器,快的是已经编译的二进制码

了。

【在 r*******n 的大作中提到】
: 1. Functional language语法细节繁琐?LISP,Clojure, Haskell语法比java简单多了。
: 2. Python虚拟机比JVM慢,主要是因为支持python的动态机制,并不是开发python虚拟
: 机的
: 不优秀。
: 但是LISP的运行效率接近C、c++,更不会比java慢,它是动态语言,
: 我现在不知道为什么。
:
: 机。

avatar
x*1
68
牛B,有种! 天乐戏多,好事也多。
avatar
c*e
69
俺最佩服它的rmi,能想出这个idea的是我的偶象。

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
N*7
70
你有用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

avatar
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.

avatar
z*3
72
前身是corba

【在 c*********e 的大作中提到】
: 俺最佩服它的rmi,能想出这个idea的是我的偶象。
:
: 板。

avatar
N*7
73
rmi的概念其实早就有吧,DCOM,Corba都是这种RPC的概念。不过Java的abstract做得
真不错,SUN的engineer书生气浓,但做事认真。

【在 c*********e 的大作中提到】
: 俺最佩服它的rmi,能想出这个idea的是我的偶象。
:
: 板。

avatar
x*q
74
围棋的规则比象棋简洁简单,但是它可比象棋难下。

了。

【在 r*******n 的大作中提到】
: 1. Functional language语法细节繁琐?LISP,Clojure, Haskell语法比java简单多了。
: 2. Python虚拟机比JVM慢,主要是因为支持python的动态机制,并不是开发python虚拟
: 机的
: 不优秀。
: 但是LISP的运行效率接近C、c++,更不会比java慢,它是动态语言,
: 我现在不知道为什么。
:
: 机。

avatar
c*e
75
sun email怎么不能过滤spam? 搞的现在我们都用outlook,不习惯。outlook把很多相
关的email放在一起,经常以为是同一个email.

【在 N******7 的大作中提到】
: rmi的概念其实早就有吧,DCOM,Corba都是这种RPC的概念。不过Java的abstract做得
: 真不错,SUN的engineer书生气浓,但做事认真。

avatar
r*n
76
我觉得Java的好处是百搭,老少咸宜,大小通吃。牛人用它可以更容易跟别人showoff
自己有多牛。A3们,老中半路出家,IS大妈班毕业的也能学个皮毛混口饭吃。
avatar
c*e
77
大家都是混饭吃啦。做到eistein那个级别的,有几个?

showoff

【在 r******n 的大作中提到】
: 我觉得Java的好处是百搭,老少咸宜,大小通吃。牛人用它可以更容易跟别人showoff
: 自己有多牛。A3们,老中半路出家,IS大妈班毕业的也能学个皮毛混口饭吃。

avatar
r*n
78
还是不一样的,牛人会思考怎么用,在哪里用Java比较好。土人只考虑哪里招Java的多
pay得高。没有牛人的话Java还是跟刚出道时一样慢如蜗牛。没有土人的话牛人就失去
指导目标,失去动力,彼此相辅相成。

【在 c*********e 的大作中提到】
: 大家都是混饭吃啦。做到eistein那个级别的,有几个?
:
: showoff

avatar
N*7
79
这个不太一样吧。用sun email的有多少人?而且大多是在公司内部用,那时候有多少
spam?用进废退嘛。
sun出过不少好东西,有的东西都没出过sun公司。比如sun ray,说起来就和VNC一样,
但从中国连sun总部的机器都嗖嗖的。可除了sun的人,谁听说过。
Sun也就是坏在了Engineer管公司,不会挣钱呀。

【在 c*********e 的大作中提到】
: sun email怎么不能过滤spam? 搞的现在我们都用outlook,不习惯。outlook把很多相
: 关的email放在一起,经常以为是同一个email.

avatar
c*e
80
这个就像哲学家和普通老百姓一样,哲学家想的是非常大尺度,大深度的东西。德国的
哲学家,有名的非常多,尼采后来疯了,还是很可惜的。

【在 r******n 的大作中提到】
: 还是不一样的,牛人会思考怎么用,在哪里用Java比较好。土人只考虑哪里招Java的多
: pay得高。没有牛人的话Java还是跟刚出道时一样慢如蜗牛。没有土人的话牛人就失去
: 指导目标,失去动力,彼此相辅相成。

avatar
c*e
81
sun,rim,都是经验教训阿。一个公司不能有2个ceo,一个搞管理,一个搞技术;一个公司
不能让搞技术的当头头,头头一定要有管理头脑和交流能力。

【在 N******7 的大作中提到】
: 这个不太一样吧。用sun email的有多少人?而且大多是在公司内部用,那时候有多少
: spam?用进废退嘛。
: sun出过不少好东西,有的东西都没出过sun公司。比如sun ray,说起来就和VNC一样,
: 但从中国连sun总部的机器都嗖嗖的。可除了sun的人,谁听说过。
: Sun也就是坏在了Engineer管公司,不会挣钱呀。

avatar
i*l
82
不是吧,在java中类型是静态的,无法改变。真正的动态语言如python, ruby之流,
是可以在运行中改变一个类型的,塞一个方法进去,删掉一些属性什么的。

【在 h********3 的大作中提到】
: 具有反射的语言都是动态语言。因为即使它不是“动态”的,都可以用反射功能去实现
: 成“动态”。

avatar
i*l
83
这个不能说谁强谁弱,看需求。
有的环境要求较快的响应时间,官方的jvm的gc可能会暂停
过长时间,但绝对性能应该还是王者
实际上,采用reference counting的vm,响应时间的表现都
会比采用什么mark sweep/region算法的vm好,但是整体性能
差很多。

【在 z*******3 的大作中提到】
: 而且官方的jvm还不是最好的
: linux上的jvm有更牛逼的实现
: http://www.azulsystems.com/
: 这个可以让gc的中断时间在一个很小的范围内
: 就是不知道用这个虚拟机执行的效率去跟c/c++写的程序做对比会怎样
:
: 机。

avatar
h*3
84
你这个还只是简单的数学表达式。不算复杂。如果你真正看过LISP开发的软件源代码,
绝对一层包一层括号都把你看死。

【在 A******g 的大作中提到】
: (+ (+3 5) (+ 2 (+ 6 (+7 (* 3 7)))) ) 好读吗?
: LISP(像scheme)有解析器,也有编译器,快的是已经编译的二进制码
:
: 了。

avatar
a*x
85
写了一段时间Clojure,大大锻炼了我数括号的能力

【在 h********3 的大作中提到】
: 你这个还只是简单的数学表达式。不算复杂。如果你真正看过LISP开发的软件源代码,
: 绝对一层包一层括号都把你看死。

avatar
r*y
86
java 里面定义个复杂对象嵌套很深的 generics , 那些尖括号也能把人给数晕

【在 h********3 的大作中提到】
: 你这个还只是简单的数学表达式。不算复杂。如果你真正看过LISP开发的软件源代码,
: 绝对一层包一层括号都把你看死。

avatar
n*d
87
performance 不代表一切。容易用,不会crash才是王道。

【在 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

avatar
n*t
88
你们是真不懂还是假不懂,JVM这东西可以用,但是没法快的.

【在 z*******3 的大作中提到】
: 而且官方的jvm还不是最好的
: linux上的jvm有更牛逼的实现
: http://www.azulsystems.com/
: 这个可以让gc的中断时间在一个很小的范围内
: 就是不知道用这个虚拟机执行的效率去跟c/c++写的程序做对比会怎样
:
: 机。

avatar
N*7
89
现在的JVM通过JIT还是有可能很快的,不能完全达到高效的c/c++,但可以很接近。

【在 n******t 的大作中提到】
: 你们是真不懂还是假不懂,JVM这东西可以用,但是没法快的.
avatar
z*3
90
那要看怎么定义这个快了
其实我现在用jvm跑一些游戏感觉并不差
看这个
http://jpcsp.org/
java写的psp模拟器
牛逼吧

【在 n******t 的大作中提到】
: 你们是真不懂还是假不懂,JVM这东西可以用,但是没法快的.
avatar
M*6
91
pretty fun
avatar
h*3
92
其实很多Java的应用比C/C++还更高效。主要在于内存分配和回收上的速度。JVM的内存
分配和管理,比C/C++的new,delete,malloc,free高效得多。C/C++的程序如果没有好的
内存池搭配,速度比JVM的慢多了,特别是在大内存的server上跑。
之前有专门对比过Web server的效率。C/C++只有Nginx比Apache tomcat快,原因是
Nginx自己实现了一套高效的内存池。即便是Apache组织下的Apache Web server,都不
如tomcat快,这个很有讽刺意义。
如果你仔细研究一下JVM的源代码就会发现,其实大部分JAVA的对象分配通常都是几条
机器指令就完成的。而C/C++的malloc,free要遍历链表。正是因为如此,我们写Java程
序的时候可以肆无忌惮地创建对象,把一切对象化。而你做C/C++的时候,始终要考虑
,你是应该在循环里面创建对象,还是考虑在程序启动的时候创建对象池。于是,久而
久之,C/C++的程序员就把大部分精力花在如此的程序实现细节上了,而忽略了你的业
务逻辑,你的软件设计。

runtime

【在 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)。

avatar
h*u
93
"大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
同一個processor的不同threads會不會經常access同一個cache line,還有
fragmentation等等。各種原因在一起非常複雜。
另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
idea :) 現在看到很多server applications的scalability已經被excessive object
creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個
concurrent users結果發現只能並行support幾千個,根本原因就是每一個user
session create了太多的object,在share memory系統上memory bandwidth就那麽大,
每一個thread 用了太多memory,並發行大大降低。另外,如果你要看現在的data-
intensive application,大的像hadoop一樣的map-reduce system,如果瘋狂create
objects,根本沒辦法scalable。擧個例子:一個大的數據處理系統在12G heap上面沒
辦法處理1G的數據,原因是每個data item都用object來表示的, GC overhead佔了縂
時間的47%。解決這些問題需要很多新的research,當然還有就是developers們需要有
object is not free的意識:)

【在 h********3 的大作中提到】
: 其实很多Java的应用比C/C++还更高效。主要在于内存分配和回收上的速度。JVM的内存
: 分配和管理,比C/C++的new,delete,malloc,free高效得多。C/C++的程序如果没有好的
: 内存池搭配,速度比JVM的慢多了,特别是在大内存的server上跑。
: 之前有专门对比过Web server的效率。C/C++只有Nginx比Apache tomcat快,原因是
: Nginx自己实现了一套高效的内存池。即便是Apache组织下的Apache Web server,都不
: 如tomcat快,这个很有讽刺意义。
: 如果你仔细研究一下JVM的源代码就会发现,其实大部分JAVA的对象分配通常都是几条
: 机器指令就完成的。而C/C++的malloc,free要遍历链表。正是因为如此,我们写Java程
: 序的时候可以肆无忌惮地创建对象,把一切对象化。而你做C/C++的时候,始终要考虑
: ,你是应该在循环里面创建对象,还是考虑在程序启动的时候创建对象池。于是,久而

avatar
c*e
94
嘿嘿,这个thread引起众多码工回帖,让我想起了大学熄灯后的床上夜话,或者是鹊桥
夜话。

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
m*l
95
唯一的一个好贴子

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
c*e
96
好在现在内存都是5g,10g的,硬盘就更大了。

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
m*l
97
所以要好的C++程序员来...

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
m*l
98
所以JAVA早就了太多mediocre的程序员

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
c*e
99
所以要好的程序员来创建对象,不该创建对象的时候坚决不建。

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
c*e
100
java程序员更重视的是business logic,尤其是ejb的程序员。container能帮着做很多
事,连entry point main()都免了。

【在 m*******l 的大作中提到】
: 所以JAVA早就了太多mediocre的程序员
:
: object

avatar
m*l
101
ft. MFC的main隐藏的更早

【在 c*********e 的大作中提到】
: java程序员更重视的是business logic,尤其是ejb的程序员。container能帮着做很多
: 事,连entry point main()都免了。

avatar
h*u
102
看你的數據處理量。像fb或者amazon這樣大的系統(如果他們用java implement的話)
,你會有幾十上百Gb的data stream 在等著處理。就算内存在不斷增大,需要處理的數
據量絕對比内存增大的速度快。

【在 c*********e 的大作中提到】
: 好在现在内存都是5g,10g的,硬盘就更大了。
:
: object

avatar
m*l
103
现在JAVA的抄的很多概念什么mvc, rmi啥的,人家微软不比这个晚

【在 m*******l 的大作中提到】
: ft. MFC的main隐藏的更早
avatar
x*u
104
隐藏main本来就不是什么大事,因为main/winmain本来就不是Win32进程的入口。但MFC
这么做纯属手贱,其实没必要。

【在 m*******l 的大作中提到】
: ft. MFC的main隐藏的更早
avatar
c*e
105
这个要问amazon,fb怎么做的了。可能是它们的商业机密。

【在 h******u 的大作中提到】
: 看你的數據處理量。像fb或者amazon這樣大的系統(如果他們用java implement的話)
: ,你會有幾十上百Gb的data stream 在等著處理。就算内存在不斷增大,需要處理的數
: 據量絕對比内存增大的速度快。

avatar
m*l
106
为了看起来更像对象

MFC

【在 x****u 的大作中提到】
: 隐藏main本来就不是什么大事,因为main/winmain本来就不是Win32进程的入口。但MFC
: 这么做纯属手贱,其实没必要。

avatar
x*u
107
数据层又不是用java做的,java做的是逻辑,可以用机器数目提高性能。

【在 c*********e 的大作中提到】
: 这个要问amazon,fb怎么做的了。可能是它们的商业机密。
avatar
x*u
108
本来MFC多好的纯C++ Reflection实现,结果被这颗老鼠屎弄得不伦不类。

【在 m*******l 的大作中提到】
: 为了看起来更像对象
:
: MFC

avatar
h*u
109
他們當然不可能是用java implement的 :)

【在 c*********e 的大作中提到】
: 这个要问amazon,fb怎么做的了。可能是它们的商业机密。
avatar
g*g
110
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.

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
d*x
111
正经点做大规模c++项目的基本都有自己的内存池实现。。。
原生的分配器在小对象多的时候非常差,非常非常差。。

【在 h********3 的大作中提到】
: 其实很多Java的应用比C/C++还更高效。主要在于内存分配和回收上的速度。JVM的内存
: 分配和管理,比C/C++的new,delete,malloc,free高效得多。C/C++的程序如果没有好的
: 内存池搭配,速度比JVM的慢多了,特别是在大内存的server上跑。
: 之前有专门对比过Web server的效率。C/C++只有Nginx比Apache tomcat快,原因是
: Nginx自己实现了一套高效的内存池。即便是Apache组织下的Apache Web server,都不
: 如tomcat快,这个很有讽刺意义。
: 如果你仔细研究一下JVM的源代码就会发现,其实大部分JAVA的对象分配通常都是几条
: 机器指令就完成的。而C/C++的malloc,free要遍历链表。正是因为如此,我们写Java程
: 序的时候可以肆无忌惮地创建对象,把一切对象化。而你做C/C++的时候,始终要考虑
: ,你是应该在循环里面创建对象,还是考虑在程序启动的时候创建对象池。于是,久而

avatar
m*l
112
这个东西本来就是case by case tune的

【在 d**********x 的大作中提到】
: 正经点做大规模c++项目的基本都有自己的内存池实现。。。
: 原生的分配器在小对象多的时候非常差,非常非常差。。

avatar
N*7
113
在实时系统需要处理大数据的时候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.
:

avatar
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

avatar
n*t
115

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这就是我说Java的程序快不起来的原因。。。lol

【在 h********3 的大作中提到】
: 其实很多Java的应用比C/C++还更高效。主要在于内存分配和回收上的速度。JVM的内存
: 分配和管理,比C/C++的new,delete,malloc,free高效得多。C/C++的程序如果没有好的
: 内存池搭配,速度比JVM的慢多了,特别是在大内存的server上跑。
: 之前有专门对比过Web server的效率。C/C++只有Nginx比Apache tomcat快,原因是
: Nginx自己实现了一套高效的内存池。即便是Apache组织下的Apache Web server,都不
: 如tomcat快,这个很有讽刺意义。
: 如果你仔细研究一下JVM的源代码就会发现,其实大部分JAVA的对象分配通常都是几条
: 机器指令就完成的。而C/C++的malloc,free要遍历链表。正是因为如此,我们写Java程
: 序的时候可以肆无忌惮地创建对象,把一切对象化。而你做C/C++的时候,始终要考虑
: ,你是应该在循环里面创建对象,还是考虑在程序启动的时候创建对象池。于是,久而

avatar
x*u
116
不过大部分对象应该可以用Reference Counting就释放掉。

【在 n******t 的大作中提到】
:
: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
: 这就是我说Java的程序快不起来的原因。。。lol

avatar
n*t
117
所有的这种"肆无忌惮的xxx",都是有问题的。。。
肆无忌惮的create pthread,肆无忌惮的create connection,肆无忌惮的open files,
就算Java本身不一定效率低,就单单从it鼓励程序员这么干这一点来说,就不是一个
高效的语言。
而且现在要管理的resource多了去了,GC只是memory而已,要一劳永逸不是那么简单的。

【在 x****u 的大作中提到】
: 不过大部分对象应该可以用Reference Counting就释放掉。
avatar
x*u
118
就算是肆无忌惮,想耗尽资源还是很有难度的。

的。

【在 n******t 的大作中提到】
: 所有的这种"肆无忌惮的xxx",都是有问题的。。。
: 肆无忌惮的create pthread,肆无忌惮的create connection,肆无忌惮的open files,
: 就算Java本身不一定效率低,就单单从it鼓励程序员这么干这一点来说,就不是一个
: 高效的语言。
: 而且现在要管理的resource多了去了,GC只是memory而已,要一劳永逸不是那么简单的。

avatar
m*l
119
所以我说JAVA的缺点就是是很多mediocre的程序员存在
当然JAVA的大牛也很多,但是mediorce的更多

的。

【在 n******t 的大作中提到】
: 所有的这种"肆无忌惮的xxx",都是有问题的。。。
: 肆无忌惮的create pthread,肆无忌惮的create connection,肆无忌惮的open files,
: 就算Java本身不一定效率低,就单单从it鼓励程序员这么干这一点来说,就不是一个
: 高效的语言。
: 而且现在要管理的resource多了去了,GC只是memory而已,要一劳永逸不是那么简单的。

avatar
m*l
120
分配内存的死循环...

【在 x****u 的大作中提到】
: 就算是肆无忌惮,想耗尽资源还是很有难度的。
:
: 的。

avatar
x*u
121
Java没有分配内存函数啊。

【在 m*******l 的大作中提到】
: 分配内存的死循环...
avatar
n*t
122
所以说,要写可以用的程序是没问题的,但是要性能高,也是不太可能的。
反正需要的时候也可以用,现在很多时候机器都闲得谎,无所谓。
但是也要知道有很多时候机器不是闲得慌的,比如很多用户体验比较在意的应用,
Java就不太行。

【在 x****u 的大作中提到】
: 就算是肆无忌惮,想耗尽资源还是很有难度的。
:
: 的。

avatar
x*u
123
Java是专为非瓶颈代码设计的语言。
C如果写的好可以效率达到CPU极限,但对于大多数程序员来说肯定搞得比Java慢并且漏
洞百出。

【在 n******t 的大作中提到】
: 所以说,要写可以用的程序是没问题的,但是要性能高,也是不太可能的。
: 反正需要的时候也可以用,现在很多时候机器都闲得谎,无所谓。
: 但是也要知道有很多时候机器不是闲得慌的,比如很多用户体验比较在意的应用,
: Java就不太行。

avatar
m*l
124
是这样的

【在 x****u 的大作中提到】
: Java是专为非瓶颈代码设计的语言。
: C如果写的好可以效率达到CPU极限,但对于大多数程序员来说肯定搞得比Java慢并且漏
: 洞百出。

avatar
c*e
125
java说白了,就是用写好的frameworks,library,interface,比如spring,hibernate,
android里面的clicklistener,activity,fragment之类的,程序员只要override某个
method就可以了。这个趋势,c#现在也是这样了。搞的现在编程基本就是copy,paste.
有啥事,找stackoverflow.com,上面各种各样的问题,答案都非常靠铺,copy,paste就
搞定。神马iphone,android,c,c++,c#,java,etc.编程,有问题,找stackoverflow.com
,copy,paste,done.下班回家抱娃。

【在 m*******l 的大作中提到】
: 所以我说JAVA的缺点就是是很多mediocre的程序员存在
: 当然JAVA的大牛也很多,但是mediorce的更多
:
: 的。

avatar
m*l
126
应该是对大多数JAVA程序员
现在剩下的C/C++程序员我个人感觉应该平均水平不至于像JAVA那样

【在 x****u 的大作中提到】
: Java是专为非瓶颈代码设计的语言。
: C如果写的好可以效率达到CPU极限,但对于大多数程序员来说肯定搞得比Java慢并且漏
: 洞百出。

avatar
c*e
127
好多c,c++ programmer已经跳槽到c#,做网络方面的事情,比如web services,web
application,authentication.毕竟现在是网络时代,和网络有关的工作机会最多。

【在 m*******l 的大作中提到】
: 应该是对大多数JAVA程序员
: 现在剩下的C/C++程序员我个人感觉应该平均水平不至于像JAVA那样

avatar
x*u
128
我的感觉是,大多数的C++代码里面一样有很多问题。因为复杂度过高,多数程序员没
法真正掌握。

【在 m*******l 的大作中提到】
: 应该是对大多数JAVA程序员
: 现在剩下的C/C++程序员我个人感觉应该平均水平不至于像JAVA那样

avatar
d*x
129
我正在寻找成为java牛人之路。。。

【在 m*******l 的大作中提到】
: 应该是对大多数JAVA程序员
: 现在剩下的C/C++程序员我个人感觉应该平均水平不至于像JAVA那样

avatar
c*e
130
java牛人应该是写api,web services的那些architect.

【在 d**********x 的大作中提到】
: 我正在寻找成为java牛人之路。。。
avatar
x*u
131
architect这个词被java搞臭了。

【在 c*********e 的大作中提到】
: java牛人应该是写api,web services的那些architect.
avatar
d*x
132
re

【在 x****u 的大作中提到】
: architect这个词被java搞臭了。
avatar
m*l
133
你有C++的基础应该比这里夸夸奇谈 的几个强太多了

【在 d**********x 的大作中提到】
: 我正在寻找成为java牛人之路。。。
avatar
b*i
134
C/C++程序员象个肌肉发到的勇士,学过功夫,学过内力,准备爬到泰山顶上采草药,
结果别人做缆车上去先到。其实,坐缆车的人不见得肌肉不发达,人就是用了更好的工
具。

【在 m*******l 的大作中提到】
: 应该是对大多数JAVA程序员
: 现在剩下的C/C++程序员我个人感觉应该平均水平不至于像JAVA那样

avatar
c*e
135
sigh,c/c++和java之争。c#也不错。

【在 b***i 的大作中提到】
: C/C++程序员象个肌肉发到的勇士,学过功夫,学过内力,准备爬到泰山顶上采草药,
: 结果别人做缆车上去先到。其实,坐缆车的人不见得肌肉不发达,人就是用了更好的工
: 具。

avatar
i*l
136
jvm中的创建海量的对象,考虑到c/c++的对应实现,也一样有开销啊,除非你创建的是
固定不变的数据,不考虑回收,使用最简单的bump pointer allocation。
如果要回收,jvm有很多算法进行递增式的gc,比如generational gc,young objects死
的快,old objects被移到回收频率低的空间,大多数时候的gc都是短促而快的轻量gc,
最后内存使用达到了某个阈值才会激发full gc
总之,如果大批量的创建,回收,不管java还是c/c++都要付出代价。

【在 N******7 的大作中提到】
: 在实时系统需要处理大数据的时候JVM的performance的确是一个问题。object越来越多
: ,没有足够的时间GC,而且内存越大,GC的时候越长,Whole world freeze的时间也就
: 越长。这方面用C/C++,可以用内存加指针,不需要create object,也不需要free,的
: 确比Java强。
: 一般的Web Application没那么高的实时性要求,当然看不起来java的weak point。
:
: However
: to
: practice

avatar
b*i
137
关于对象内存管理,我在想,是否可以有一种硬件机制,可以将地址和内存建立映射,
在一个CPU时钟周期内释放内存?

objects死
gc,

【在 i******l 的大作中提到】
: jvm中的创建海量的对象,考虑到c/c++的对应实现,也一样有开销啊,除非你创建的是
: 固定不变的数据,不考虑回收,使用最简单的bump pointer allocation。
: 如果要回收,jvm有很多算法进行递增式的gc,比如generational gc,young objects死
: 的快,old objects被移到回收频率低的空间,大多数时候的gc都是短促而快的轻量gc,
: 最后内存使用达到了某个阈值才会激发full gc
: 总之,如果大批量的创建,回收,不管java还是c/c++都要付出代价。

avatar
c*e
138
感觉内存还是太小,什么时候,内存会大到象硬盘那么大呢?

【在 b***i 的大作中提到】
: 关于对象内存管理,我在想,是否可以有一种硬件机制,可以将地址和内存建立映射,
: 在一个CPU时钟周期内释放内存?
:
: objects死
: gc,

avatar
l*s
139
^__^, 问题是老板们也很精明,要求也相应提高了,结果还是没完没了的加班。。。

com

【在 c*********e 的大作中提到】
: java说白了,就是用写好的frameworks,library,interface,比如spring,hibernate,
: android里面的clicklistener,activity,fragment之类的,程序员只要override某个
: method就可以了。这个趋势,c#现在也是这样了。搞的现在编程基本就是copy,paste.
: 有啥事,找stackoverflow.com,上面各种各样的问题,答案都非常靠铺,copy,paste就
: 搞定。神马iphone,android,c,c++,c#,java,etc.编程,有问题,找stackoverflow.com
: ,copy,paste,done.下班回家抱娃。

avatar
m*l
140
你一直bump,完了怎么办?

objects死
gc,

【在 i******l 的大作中提到】
: jvm中的创建海量的对象,考虑到c/c++的对应实现,也一样有开销啊,除非你创建的是
: 固定不变的数据,不考虑回收,使用最简单的bump pointer allocation。
: 如果要回收,jvm有很多算法进行递增式的gc,比如generational gc,young objects死
: 的快,old objects被移到回收频率低的空间,大多数时候的gc都是短促而快的轻量gc,
: 最后内存使用达到了某个阈值才会激发full gc
: 总之,如果大批量的创建,回收,不管java还是c/c++都要付出代价。

avatar
b*i
141
用java这些framework好歹加个班能把工作做完,同样的工作,就没C++的了,或者说连
老板都知道C++加班也没戏。
当然,有些工作是得用C++,比如科学计算了(Fortran的急了?)。我是说,大量的工
作,估计占原C++的60%以上的工作,都变成了Java的了。

【在 l*********s 的大作中提到】
: ^__^, 问题是老板们也很精明,要求也相应提高了,结果还是没完没了的加班。。。
:
: com

avatar
x*u
142
你把复杂的东西做到CPU里面了,CPU就慢了,还是不合适。

【在 b***i 的大作中提到】
: 关于对象内存管理,我在想,是否可以有一种硬件机制,可以将地址和内存建立映射,
: 在一个CPU时钟周期内释放内存?
:
: objects死
: gc,

avatar
m*l
143
可以两个CPU, 一个专门干这个

【在 x****u 的大作中提到】
: 你把复杂的东西做到CPU里面了,CPU就慢了,还是不合适。
avatar
x*u
144
性能提高一点点,速度慢50%。

【在 m*******l 的大作中提到】
: 可以两个CPU, 一个专门干这个
avatar
c*e
145
那是当然,老板就是搞管理的。比如有的老板,强迫员工周五交货,不交的话,嘿嘿。
。。

【在 l*********s 的大作中提到】
: ^__^, 问题是老板们也很精明,要求也相应提高了,结果还是没完没了的加班。。。
:
: com

avatar
i*l
146
你没仔细读啊。
那个哥们儿说jvm的海量对象创建回收慢,我说在c/c++里也受影响,除非是不考虑回收,
使用bump pointer allocation的,那你可以搞一大块,移动指针就完了。
况且jvm也没有那么慢

【在 m*******l 的大作中提到】
: 你一直bump,完了怎么办?
:
: objects死
: gc,

avatar
i*l
147
这个可以有。
现在core越来越多,现在还是同样的核的U多,以后可能出于功耗考虑,
可能还会把不同的核在一个U上,m个小core,n个大core
这就更能体现出jvm的优势了,因为不同的service可以放到不同的core上,
举个例子,jit放到某个大core上,gc放到某个低频的小core上,以此来达到
功耗和性能的协调,这在managed language领域有不少人搞。随着移动设备
数量急剧增加,我觉得vm的前景不错呢。
如果是c和c++,诸位觉得该怎么弄?

【在 m*******l 的大作中提到】
: 可以两个CPU, 一个专门干这个
avatar
x*u
148
靠,ARM的成功说明了CPU指令绝不可以随意复杂化。

【在 i******l 的大作中提到】
: 这个可以有。
: 现在core越来越多,现在还是同样的核的U多,以后可能出于功耗考虑,
: 可能还会把不同的核在一个U上,m个小core,n个大core
: 这就更能体现出jvm的优势了,因为不同的service可以放到不同的core上,
: 举个例子,jit放到某个大core上,gc放到某个低频的小core上,以此来达到
: 功耗和性能的协调,这在managed language领域有不少人搞。随着移动设备
: 数量急剧增加,我觉得vm的前景不错呢。
: 如果是c和c++,诸位觉得该怎么弄?

avatar
a9
149
arm现在只是移动设备有优势啊。主要还是省电。

【在 x****u 的大作中提到】
: 靠,ARM的成功说明了CPU指令绝不可以随意复杂化。
avatar
i*l
150
这跟指令有什么关系?
这些服务在vm里也就是thread而已,把某某thread绑在某个core上
跑为什么会CPU复杂化指令

【在 x****u 的大作中提到】
: 靠,ARM的成功说明了CPU指令绝不可以随意复杂化。
avatar
x*u
151
这就是最大优势啊。电就意味着热,然后会影响很多。

【在 a9 的大作中提到】
: arm现在只是移动设备有优势啊。主要还是省电。
avatar
a9
152
貌似目前还是复杂指令集有无可拟的速度优势。

【在 x****u 的大作中提到】
: 这就是最大优势啊。电就意味着热,然后会影响很多。
avatar
x*u
153
你浪费一个CPU,能获得50%性能提高么?

【在 i******l 的大作中提到】
: 这跟指令有什么关系?
: 这些服务在vm里也就是thread而已,把某某thread绑在某个core上
: 跑为什么会CPU复杂化指令

avatar
c*e
154
很奇怪现在人工智能领域发展这么慢,难道让一个机器人自己会思考,这么难吗?

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
m*l
155


【在 c*********e 的大作中提到】
: 很奇怪现在人工智能领域发展这么慢,难道让一个机器人自己会思考,这么难吗?
:
: 板。

avatar
x*u
156
去掉冷却系统后就不行了。
而且现在复杂指令已经遇到了功耗频率的极限。

【在 a9 的大作中提到】
: 貌似目前还是复杂指令集有无可拟的速度优势。
avatar
a9
157
还是这句话:目前还是复杂指令集有无可比拟的速度优势

【在 x****u 的大作中提到】
: 去掉冷却系统后就不行了。
: 而且现在复杂指令已经遇到了功耗频率的极限。

avatar
x*u
158
说这个没什么用,CPU的历史就是高速CPU被低功耗CPU干掉的历史。

【在 a9 的大作中提到】
: 还是这句话:目前还是复杂指令集有无可比拟的速度优势
avatar
a9
159
的确是,intel把amd干趴下了

【在 x****u 的大作中提到】
: 说这个没什么用,CPU的历史就是高速CPU被低功耗CPU干掉的历史。
avatar
N*7
160
这个我觉得不太一样。我们的一个系统就是这样,实时大数据量,在C/C++里可以把读
来的数据往一大块内存里放,然后移动指针,另一个读指针,直接按structure读。内
存可以不需要不断alloc和free。但以前的design在Java里不得不一个一个object的
create。然后这些object没时间被GC,都堆在memery里,一但Full GC,就freeze
whole world,然后timeout, socket close。本来考虑也用一大块memory的方式,但那
样没法用structure data了。
不知道这种时候你用java有什么好的design没有?

objects死
gc,

【在 i******l 的大作中提到】
: jvm中的创建海量的对象,考虑到c/c++的对应实现,也一样有开销啊,除非你创建的是
: 固定不变的数据,不考虑回收,使用最简单的bump pointer allocation。
: 如果要回收,jvm有很多算法进行递增式的gc,比如generational gc,young objects死
: 的快,old objects被移到回收频率低的空间,大多数时候的gc都是短促而快的轻量gc,
: 最后内存使用达到了某个阈值才会激发full gc
: 总之,如果大批量的创建,回收,不管java还是c/c++都要付出代价。

avatar
z*3
161
肆无忌惮地new也不对
现在大部分都是让spring什么来管
spring对于大多数bean只创建一个对象
然后来回地用
但是google写的guice默认是对每一个请求自动创建新对象
因为现在这个年代,new一个bean已经不那么耗时了
除非这个bean有io的操作
不过spring是先把这些都生成,然后存在内存里面
供线程调用,所以spring启动很慢,网络上一搜,一堆的抱怨
guice因为不预先生成bean保存在内存里,所以启动很快
等到你要用时候,它再生成对象,所以执行效率不如spring

【在 n******t 的大作中提到】
: 所以说,要写可以用的程序是没问题的,但是要性能高,也是不太可能的。
: 反正需要的时候也可以用,现在很多时候机器都闲得谎,无所谓。
: 但是也要知道有很多时候机器不是闲得慌的,比如很多用户体验比较在意的应用,
: Java就不太行。

avatar
x*u
162
大内存这事系统可以直接帮你做好。

【在 N******7 的大作中提到】
: 这个我觉得不太一样。我们的一个系统就是这样,实时大数据量,在C/C++里可以把读
: 来的数据往一大块内存里放,然后移动指针,另一个读指针,直接按structure读。内
: 存可以不需要不断alloc和free。但以前的design在Java里不得不一个一个object的
: create。然后这些object没时间被GC,都堆在memery里,一但Full GC,就freeze
: whole world,然后timeout, socket close。本来考虑也用一大块memory的方式,但那
: 样没法用structure data了。
: 不知道这种时候你用java有什么好的design没有?
:
: objects死
: gc,

avatar
i*l
163
也不能说浪费一个core,只是根据任务的特点,让特定的一个或一些核
专注于,或主要执行某些任务。
性能和功耗的协调统一,举个例子,假设,某任务用1G的core和200MHz的
简单core来跑,都能在时间t内完成,但功耗差老了,那么区别对待vm内
不同类型的任务就是一个好主意。反正核的数量是不停的在增加的,现在
的处理器厂商就会玩命堆核

【在 x****u 的大作中提到】
: 你浪费一个CPU,能获得50%性能提高么?
avatar
x*u
164
这种事情OS早就帮你想好了。
你设计个高优先级线程,基本上一个核就被它给包场了。

【在 i******l 的大作中提到】
: 也不能说浪费一个core,只是根据任务的特点,让特定的一个或一些核
: 专注于,或主要执行某些任务。
: 性能和功耗的协调统一,举个例子,假设,某任务用1G的core和200MHz的
: 简单core来跑,都能在时间t内完成,但功耗差老了,那么区别对待vm内
: 不同类型的任务就是一个好主意。反正核的数量是不停的在增加的,现在
: 的处理器厂商就会玩命堆核

avatar
a9
165
zkss?

把读
。内
但那

【在 x****u 的大作中提到】
: 大内存这事系统可以直接帮你做好。
avatar
d*x
166
OS无法预测缓存命中情况吧。。?

【在 x****u 的大作中提到】
: 这种事情OS早就帮你想好了。
: 你设计个高优先级线程,基本上一个核就被它给包场了。

avatar
x*u
167
比如你分配了一大块内存,实际上只是拿到了线性地址而已,物理内存消耗几乎为零。

【在 a9 的大作中提到】
: zkss?
:
: 把读
: 。内
: 但那

avatar
x*u
168
你软件怎么预测?

【在 d**********x 的大作中提到】
: OS无法预测缓存命中情况吧。。?
avatar
a9
169
人家早填了数据了。。。。。

【在 x****u 的大作中提到】
: 比如你分配了一大块内存,实际上只是拿到了线性地址而已,物理内存消耗几乎为零。
avatar
x*u
170
填了数据才分配内存。

【在 a9 的大作中提到】
: 人家早填了数据了。。。。。
avatar
i*l
171
这个跟OS没什么关系。
我在说vm设计,怎么最大化的利用硬件获得功耗和性能的统一。
而这一切对于程序员都是透明的。所以我说vm前景很好。

【在 x****u 的大作中提到】
: 这种事情OS早就帮你想好了。
: 你设计个高优先级线程,基本上一个核就被它给包场了。

avatar
z*3
172
create thread由web server来管,如果是中间的,用app server来管
connection建连接池
open files对于大多数的java程序来说可能都不存在
bean本身用spring来管
数据用db来管
所以基本上要管理的resources都有比较合适的东西在做
单纯依赖core java自己去拼命写也是有问题的
现在很多程序猿写了几个月程序,搞不好连new这个关键字都不用

的。

【在 n******t 的大作中提到】
: 所有的这种"肆无忌惮的xxx",都是有问题的。。。
: 肆无忌惮的create pthread,肆无忌惮的create connection,肆无忌惮的open files,
: 就算Java本身不一定效率低,就单单从it鼓励程序员这么干这一点来说,就不是一个
: 高效的语言。
: 而且现在要管理的resource多了去了,GC只是memory而已,要一劳永逸不是那么简单的。

avatar
x*u
173
Dalvik设计者显然不这么认为啊。

【在 i******l 的大作中提到】
: 这个跟OS没什么关系。
: 我在说vm设计,怎么最大化的利用硬件获得功耗和性能的统一。
: 而这一切对于程序员都是透明的。所以我说vm前景很好。

avatar
i*l
174
纯bump pointer allocation,不回收,这个肯定c/c++快,比java合适。

【在 N******7 的大作中提到】
: 这个我觉得不太一样。我们的一个系统就是这样,实时大数据量,在C/C++里可以把读
: 来的数据往一大块内存里放,然后移动指针,另一个读指针,直接按structure读。内
: 存可以不需要不断alloc和free。但以前的design在Java里不得不一个一个object的
: create。然后这些object没时间被GC,都堆在memery里,一但Full GC,就freeze
: whole world,然后timeout, socket close。本来考虑也用一大块memory的方式,但那
: 样没法用structure data了。
: 不知道这种时候你用java有什么好的design没有?
:
: objects死
: gc,

avatar
i*l
175
...这从何说起啊
那他们怎么认为啊

【在 x****u 的大作中提到】
: Dalvik设计者显然不这么认为啊。
avatar
x*u
176
安卓上的程序还是编译过的Java啊。

【在 i******l 的大作中提到】
: ...这从何说起啊
: 那他们怎么认为啊

avatar
c*e
177
为啥子难?其实用几个数据库,n个表格模拟人的大脑的记忆存储。然后让机器人每碰
到一件事,都在自己的记忆和经验表里搜索该怎么处理,不就可以了吗?难道我想得太
简单?
还可以定义一个机器人的行为和思维模式,比如这个特定的机器人,性格是内向的,但
是工作是aggressive的,人是稳定的,不会主动攻击人的。

【在 m*******l 的大作中提到】
: 难
avatar
a9
178
你是在说watson吧?

【在 c*********e 的大作中提到】
: 为啥子难?其实用几个数据库,n个表格模拟人的大脑的记忆存储。然后让机器人每碰
: 到一件事,都在自己的记忆和经验表里搜索该怎么处理,不就可以了吗?难道我想得太
: 简单?
: 还可以定义一个机器人的行为和思维模式,比如这个特定的机器人,性格是内向的,但
: 是工作是aggressive的,人是稳定的,不会主动攻击人的。

avatar
N*7
179
愿闻其详

【在 x****u 的大作中提到】
: 大内存这事系统可以直接帮你做好。
avatar
c*e
180
watson就是个大百科全书,不能往里面更改数据。
我觉得机器人应该可以根据自己的经验来改变同一个问题的答案并存到数据库里。比如
机器人3岁的时候,人们问它,长大了想干什么,它会说歌星;5岁的时候再问它,它应
该能根据自己的经历,说想当医生,因为漂亮姑娘喜欢当医生的。

【在 a9 的大作中提到】
: 你是在说watson吧?
avatar
b*i
181
用Java有希望,因为Java有reflection。另外,我也是 最近才会的,Java调试程序的
时候,可以直接修改后继续运行,然后你的代码如果涉及一个类的方法,可以看到修改
后的结果。这样,Java程序可以设计成不仅连知识(放在数据库里面)是动态的,连人
写的代码都可以动态修改,不用重新启动程序。明白我的意思?就是说,我一辆车,开
着开着,我把它从toyota改成法拉利了,中间没停车。

【在 c*********e 的大作中提到】
: watson就是个大百科全书,不能往里面更改数据。
: 我觉得机器人应该可以根据自己的经验来改变同一个问题的答案并存到数据库里。比如
: 机器人3岁的时候,人们问它,长大了想干什么,它会说歌星;5岁的时候再问它,它应
: 该能根据自己的经历,说想当医生,因为漂亮姑娘喜欢当医生的。

avatar
z*3
182
修改得不多
比如增减fields就不能实现
增减方法也不行,唯一能动态增加方法的是用aop来实现
用spring或者aspectj
可以改变private/public这些modifier

【在 b***i 的大作中提到】
: 用Java有希望,因为Java有reflection。另外,我也是 最近才会的,Java调试程序的
: 时候,可以直接修改后继续运行,然后你的代码如果涉及一个类的方法,可以看到修改
: 后的结果。这样,Java程序可以设计成不仅连知识(放在数据库里面)是动态的,连人
: 写的代码都可以动态修改,不用重新启动程序。明白我的意思?就是说,我一辆车,开
: 着开着,我把它从toyota改成法拉利了,中间没停车。

avatar
c*e
183
动态修改这个功能已经不是新鲜事了,windows server 2008就有这个功能,不用重启
计算机。

【在 b***i 的大作中提到】
: 用Java有希望,因为Java有reflection。另外,我也是 最近才会的,Java调试程序的
: 时候,可以直接修改后继续运行,然后你的代码如果涉及一个类的方法,可以看到修改
: 后的结果。这样,Java程序可以设计成不仅连知识(放在数据库里面)是动态的,连人
: 写的代码都可以动态修改,不用重新启动程序。明白我的意思?就是说,我一辆车,开
: 着开着,我把它从toyota改成法拉利了,中间没停车。

avatar
x*u
184
你确定java可以动态改代码?
字节码里面已经没有源程序了,你改什么啊。

【在 b***i 的大作中提到】
: 用Java有希望,因为Java有reflection。另外,我也是 最近才会的,Java调试程序的
: 时候,可以直接修改后继续运行,然后你的代码如果涉及一个类的方法,可以看到修改
: 后的结果。这样,Java程序可以设计成不仅连知识(放在数据库里面)是动态的,连人
: 写的代码都可以动态修改,不用重新启动程序。明白我的意思?就是说,我一辆车,开
: 着开着,我把它从toyota改成法拉利了,中间没停车。

avatar
x*u
185
如果说到这个,其实VC6也做得到。

【在 z*******3 的大作中提到】
: 修改得不多
: 比如增减fields就不能实现
: 增减方法也不行,唯一能动态增加方法的是用aop来实现
: 用spring或者aspectj
: 可以改变private/public这些modifier

avatar
N*7
186
呵,我现在理解为什么有的人能被气得骂人了。Java可能不好动态加field或method,
但动态改代码从Proxy时就可以了,不用说cglib, javassit之类的,没有interface都
可以改。更别说aspectj了。

【在 x****u 的大作中提到】
: 你确定java可以动态改代码?
: 字节码里面已经没有源程序了,你改什么啊。

avatar
x*u
187
你说的这种编译后改代码,VC6一样可以实现。
纯动态还是没戏的。

【在 N******7 的大作中提到】
: 呵,我现在理解为什么有的人能被气得骂人了。Java可能不好动态加field或method,
: 但动态改代码从Proxy时就可以了,不用说cglib, javassit之类的,没有interface都
: 可以改。更别说aspectj了。

avatar
N*7
188
不知道你说的纯动态是什么意思。我说的不是编译后译编译的结果,是在运行时改。

【在 x****u 的大作中提到】
: 你说的这种编译后改代码,VC6一样可以实现。
: 纯动态还是没戏的。

avatar
x*u
189
问题很简单,你怎么修改字节码里面已经看不到的东西?

【在 N******7 的大作中提到】
: 不知道你说的纯动态是什么意思。我说的不是编译后译编译的结果,是在运行时改。
avatar
b*i
190
VC得继承某个类,java不用,任何类都可以动态生成。
另外,我给你举个例子,我写一个程序,解释basic语言的代码,中间一个方法我写好
了,外面调用的我catch了exception,然后我可以一边调试我的一个basic语言的代码,
一边修改,假设原来代码要么出错,要么throw exception,我再输入一边刚才的basic
的代码。C++里面,必须把这个方法用extern "C"来调用,然后必须用动态库。java本
身所有都是等价于动态库。

【在 x****u 的大作中提到】
: 你说的这种编译后改代码,VC6一样可以实现。
: 纯动态还是没戏的。

avatar
x*u
191
java也是相当于有隐含基类的。
Basic如果是编译后执行的话,也是基本改不了,纯解释版本除外。

basic

【在 b***i 的大作中提到】
: VC得继承某个类,java不用,任何类都可以动态生成。
: 另外,我给你举个例子,我写一个程序,解释basic语言的代码,中间一个方法我写好
: 了,外面调用的我catch了exception,然后我可以一边调试我的一个basic语言的代码,
: 一边修改,假设原来代码要么出错,要么throw exception,我再输入一边刚才的basic
: 的代码。C++里面,必须把这个方法用extern "C"来调用,然后必须用动态库。java本
: 身所有都是等价于动态库。

avatar
z*3
192
我觉得反射这些东西都是系统越大越有用
本身就是比较耗费资源的东西
java里面也是各种框架什么在用
作为构建框架的基础
小的,客户端,用了这个反倒像是奇淫技巧
客户端更看重执行效率
而不是结构这些东西

【在 x****u 的大作中提到】
: java也是相当于有隐含基类的。
: Basic如果是编译后执行的话,也是基本改不了,纯解释版本除外。
:
: basic

avatar
N*7
193
答案也很简单,你根本就不用改。
比如spring security,如果你没有privilege,根本就不进入method,也可以把input
parameter修改后再call method,甚至call a completely different method。这些没
有改你看不到的东西,但它他都是动态改变程序的logic。你不会说这些都不是动态的
吧。

【在 x****u 的大作中提到】
: 问题很简单,你怎么修改字节码里面已经看不到的东西?
avatar
x*u
194
那就简单了。VC6也可以凭空搞出新对象来,而且调用者透明。

input

【在 N******7 的大作中提到】
: 答案也很简单,你根本就不用改。
: 比如spring security,如果你没有privilege,根本就不进入method,也可以把input
: parameter修改后再call method,甚至call a completely different method。这些没
: 有改你看不到的东西,但它他都是动态改变程序的logic。你不会说这些都不是动态的
: 吧。

avatar
c*e
195
objective-c是一个特例,本来好老的一个语言,因为iphone又重新成为亮点。

板。

【在 b***i 的大作中提到】
: 人类技术每到一定层次,就会把这种技术模块化,比如,100年前电路到达一定成熟度
: ,出现了印刷电路板技术,但并不表示直接拿线连电路不可行,只是说大量的工作用电
: 路板非常适合,降低了出错的可能性,降低了成本,很多不懂电路的人可以生产电路板。
: 后来,又出现了集成电路技术,把电路板变成一个芯片,功能封装了,出错又减少了,
: 不会设计CPU的人也能用集成电路来做计算机了。但是仍然有人自己设计芯片。
: 那个时代电子游戏出现了,完全用硬件的电子游戏,直接控制电视机。这样的电子游戏
: 是可以设计,但是很麻烦,很少有人能设计出来,一旦出错,就是硬件的错误,要等几
: 个星期才能拿到修正的电路。所以,用软件设计游戏这个技术出现后,大部分游戏就是
: 由 不太懂设计电路的人来设计了,更容易了。
: Java的出现重复了这些历史,使用Java能够更容易解决以前的大量问题,这些问题不需

avatar
b*i
196
Java的用户程序可以调用编译代码,产生byte code,然后执行,比如jsp。然后这个代
码中所写的类就可以动态构造了。
VC6咋搞?

【在 x****u 的大作中提到】
: 那就简单了。VC6也可以凭空搞出新对象来,而且调用者透明。
:
: input

avatar
x*u
197
你这个不叫动态修改代码,叫动态编译代码。

【在 b***i 的大作中提到】
: Java的用户程序可以调用编译代码,产生byte code,然后执行,比如jsp。然后这个代
: 码中所写的类就可以动态构造了。
: VC6咋搞?

avatar
h*u
198
要看什么样的 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.
:

avatar
h*u
199
纯动态也可以改。JIT里面有一种技术叫 On-stack replacement (OSR),就是target 怎
么把在stack上面的method替换成新的,优化过的版本。并且很多research work 都可
以在GC的时候update class type,这样可以在heap reachability analysis把老class
的object替换掉。 反正总之,只要你愿意,没什么不能做的.

【在 x****u 的大作中提到】
: 你说的这种编译后改代码,VC6一样可以实现。
: 纯动态还是没戏的。

avatar
x*u
200
组件级别的修改代码,这个是VC6的技术了。
Java做不到的是类似JavaScript那种可以现场构造代码的技术。

class

【在 h******u 的大作中提到】
: 纯动态也可以改。JIT里面有一种技术叫 On-stack replacement (OSR),就是target 怎
: 么把在stack上面的method替换成新的,优化过的版本。并且很多research work 都可
: 以在GC的时候update class type,这样可以在heap reachability analysis把老class
: 的object替换掉。 反正总之,只要你愿意,没什么不能做的.

avatar
i*l
201
没有承载任何语意的优化,这和动态语言的动态完全不一样

class

【在 h******u 的大作中提到】
: 纯动态也可以改。JIT里面有一种技术叫 On-stack replacement (OSR),就是target 怎
: 么把在stack上面的method替换成新的,优化过的版本。并且很多research work 都可
: 以在GC的时候update class type,这样可以在heap reachability analysis把老class
: 的object替换掉。 反正总之,只要你愿意,没什么不能做的.

avatar
h*u
202
是啊,这是相当老的技术阿。但是像Javascript这样的codegen,理论上只要你在JVM
里用interpretation-only mode,实现起来很容易。 关键是motivation是啥?有什么
usage scenario?

【在 x****u 的大作中提到】
: 组件级别的修改代码,这个是VC6的技术了。
: Java做不到的是类似JavaScript那种可以现场构造代码的技术。
:
: class

avatar
g*g
203
我对DB processing的系统不了解。web service的系统,请求总是比较固定。很容易用
Object pool解决了。

java
management
region

【在 h******u 的大作中提到】
: 要看什么样的 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,

avatar
x*u
204
设想如果JavaScript是静态语言。。。

JVM

【在 h******u 的大作中提到】
: 是啊,这是相当老的技术阿。但是像Javascript这样的codegen,理论上只要你在JVM
: 里用interpretation-only mode,实现起来很容易。 关键是motivation是啥?有什么
: usage scenario?

avatar
g*g
205
JVM上可以跑动态和静态语言。Groovy,Clojure等等动态语言多得很。

JVM

【在 h******u 的大作中提到】
: 是啊,这是相当老的技术阿。但是像Javascript这样的codegen,理论上只要你在JVM
: 里用interpretation-only mode,实现起来很容易。 关键是motivation是啥?有什么
: usage scenario?

avatar
x*u
206
JVM等于是bytecode的执行环境了,理论上说可以跑任何东西。

【在 g*****g 的大作中提到】
: JVM上可以跑动态和静态语言。Groovy,Clojure等等动态语言多得很。
:
: JVM

avatar
b*i
207
所以说,Java把这些工作标准化到语言里面,解放生产力,你自己写代码不需要任何特
殊的代码就可以一边调试一边修改,VC6咋整?代码错了,就得关掉,改了再运行。
另外一个Java的好东西,就是,编辑器可以方便看到任何类在那里使用过,任何方法那
里用过。

【在 x****u 的大作中提到】
: 你说的这种编译后改代码,VC6一样可以实现。
: 纯动态还是没戏的。

avatar
x*u
208
这些东西在1998年时实现的还是很土的。

【在 b***i 的大作中提到】
: 所以说,Java把这些工作标准化到语言里面,解放生产力,你自己写代码不需要任何特
: 殊的代码就可以一边调试一边修改,VC6咋整?代码错了,就得关掉,改了再运行。
: 另外一个Java的好东西,就是,编辑器可以方便看到任何类在那里使用过,任何方法那
: 里用过。

avatar
g*g
209
Java其实在这方面做得不好,hotswap只能用在很小的范围内。
有一家公司叫做JRebel,做了个plugin能基本上让hotswap在所
有情况下实现。Oracle收了它放进JVM就好了。

【在 b***i 的大作中提到】
: 所以说,Java把这些工作标准化到语言里面,解放生产力,你自己写代码不需要任何特
: 殊的代码就可以一边调试一边修改,VC6咋整?代码错了,就得关掉,改了再运行。
: 另外一个Java的好东西,就是,编辑器可以方便看到任何类在那里使用过,任何方法那
: 里用过。

avatar
b*i
210
98年dotcom还没起来呢。我说10年前崛起,就是dotcom之后,java创始团队看到java还
能干这么多阿,赶快标准化各项功能,就这么着,Java崛起了。
再举一个方便的例子:别说VC6,就是VS2010 C++也不能找到一个类的某个方法用在哪里
了。注意,这不是字符串匹配的查找,那样找会很多不正确的结果。

【在 x****u 的大作中提到】
: 这些东西在1998年时实现的还是很土的。
avatar
x*u
211
这个找类方法调用处的功能是IDE插件的功劳,我倒是从来没用过。

【在 b***i 的大作中提到】
: 98年dotcom还没起来呢。我说10年前崛起,就是dotcom之后,java创始团队看到java还
: 能干这么多阿,赶快标准化各项功能,就这么着,Java崛起了。
: 再举一个方便的例子:别说VC6,就是VS2010 C++也不能找到一个类的某个方法用在哪里
: 了。注意,这不是字符串匹配的查找,那样找会很多不正确的结果。

avatar
b*i
212
这对记忆不好的老年工程师可是个重要的功能。
同样VS2012, C#就有这个功能,可见C++有些设计有问题。或者是C就有这些问题,不好
解决。

【在 x****u 的大作中提到】
: 这个找类方法调用处的功能是IDE插件的功劳,我倒是从来没用过。
avatar
x*u
213
有人研究过,C++因为没有一个基于二进制的RunTime标准,所以做这个工作的代价是需
要rebuild整个系统。

【在 b***i 的大作中提到】
: 这对记忆不好的老年工程师可是个重要的功能。
: 同样VS2012, C#就有这个功能,可见C++有些设计有问题。或者是C就有这些问题,不好
: 解决。

avatar
b*i
214
光从源代码上查找一个方法也需要二进制标准?微软用自己的不行?我

【在 x****u 的大作中提到】
: 有人研究过,C++因为没有一个基于二进制的RunTime标准,所以做这个工作的代价是需
: 要rebuild整个系统。

avatar
x*u
215
Windows API那么有特色的长名字,直接search就行了。

【在 b***i 的大作中提到】
: 光从源代码上查找一个方法也需要二进制标准?微软用自己的不行?我
avatar
d*x
216
或者组件间接口全部用c接口,只传递POD,结构alignment都一致才行。。

【在 x****u 的大作中提到】
: 有人研究过,C++因为没有一个基于二进制的RunTime标准,所以做这个工作的代价是需
: 要rebuild整个系统。

avatar
x*u
217
如果能强迫对象都继承自一个基类,这个问题能简单不少。

【在 d**********x 的大作中提到】
: 或者组件间接口全部用c接口,只传递POD,结构alignment都一致才行。。
avatar
s*n
218
居然没人回答map reduce?

【在 h******u 的大作中提到】
: 看你的數據處理量。像fb或者amazon這樣大的系統(如果他們用java implement的話)
: ,你會有幾十上百Gb的data stream 在等著處理。就算内存在不斷增大,需要處理的數
: 據量絕對比内存增大的速度快。

avatar
s*n
219
C#实现,bytearray,然后marshal object.

【在 N******7 的大作中提到】
: 这个我觉得不太一样。我们的一个系统就是这样,实时大数据量,在C/C++里可以把读
: 来的数据往一大块内存里放,然后移动指针,另一个读指针,直接按structure读。内
: 存可以不需要不断alloc和free。但以前的design在Java里不得不一个一个object的
: create。然后这些object没时间被GC,都堆在memery里,一但Full GC,就freeze
: whole world,然后timeout, socket close。本来考虑也用一大块memory的方式,但那
: 样没法用structure data了。
: 不知道这种时候你用java有什么好的design没有?
:
: objects死
: gc,

avatar
h*3
220
对象分配几条指令是针对大部分情况。JVM在内存管理上大部分都是不回收的。这里并
不是所有情况下,都可以做到几条指令就分配一个对象。
“以肆无忌惮地创建对象,把一切对象化”当然不是从performance-wise来说了。这句
话的意思是从程序逻辑上考虑的。内存池或者对象池那种方式,为了从performance上
考虑,却把对象的生存周期和创建逻辑搞得很复杂,其实并不是很好的设计思想。我希
望最好的程序语言是让大家只关注业务逻辑,算法逻辑,而不是底层实现的
performance。而且从Apache web server和Tomcat的对比就可以看出来,即便是很优秀
的C/C++程序员,也不见得能够写出JVM里面那样完美的内存管理。

object

【在 h******u 的大作中提到】
: "大部分JAVA的对象分配通常都是几条机器指令"有點誇張,呵呵。目前最efficient也
: 就是thread-local bump-the-pointer allocation, 就算是fast path也需要平均 12
: instructions。C/C++的memory allocation也不是一定需要freelist-based,很多
: customized的allocator就用bump-the-pointer。並且allocation的efficiency不光光
: 是通過allocation幾條指令來衡量的,還有好多好多的因素,比如説cache locality,
: 同一個processor的不同threads會不會經常access同一個cache line,還有
: fragmentation等等。各種原因在一起非常複雜。
: 另外performance-wise“可以肆无忌惮地创建对象,把一切对象化”不是一個good
: idea :) 現在看到很多server applications的scalability已經被excessive object
: creation所限制。我們study過不少的application, 本來設計時候可以支持幾百萬個

avatar
m*l
221
ft. Object 啊,你们java怎么学的

basic

【在 b***i 的大作中提到】
: VC得继承某个类,java不用,任何类都可以动态生成。
: 另外,我给你举个例子,我写一个程序,解释basic语言的代码,中间一个方法我写好
: 了,外面调用的我catch了exception,然后我可以一边调试我的一个basic语言的代码,
: 一边修改,假设原来代码要么出错,要么throw exception,我再输入一边刚才的basic
: 的代码。C++里面,必须把这个方法用extern "C"来调用,然后必须用动态库。java本
: 身所有都是等价于动态库。

avatar
b*i
222
不是windwos api,就是自己项目定义的类。这不就是看出来项目大小了,超过几万行
,怎么看类哪里用了,方法哪里用了?

【在 x****u 的大作中提到】
: Windows API那么有特色的长名字,直接search就行了。
avatar
m*l
223
JVM里面的完美的内存管理难道不是C++程序员写的?

【在 h********3 的大作中提到】
: 对象分配几条指令是针对大部分情况。JVM在内存管理上大部分都是不回收的。这里并
: 不是所有情况下,都可以做到几条指令就分配一个对象。
: “以肆无忌惮地创建对象,把一切对象化”当然不是从performance-wise来说了。这句
: 话的意思是从程序逻辑上考虑的。内存池或者对象池那种方式,为了从performance上
: 考虑,却把对象的生存周期和创建逻辑搞得很复杂,其实并不是很好的设计思想。我希
: 望最好的程序语言是让大家只关注业务逻辑,算法逻辑,而不是底层实现的
: performance。而且从Apache web server和Tomcat的对比就可以看出来,即便是很优秀
: 的C/C++程序员,也不见得能够写出JVM里面那样完美的内存管理。
:
: object

avatar
m*l
224
好贴,虽然道理大家都明白,但是说出来这样的,没有经验是不行的.
而且你的贴子其实就是说好的C++才能成为好的JAVA程序员

java
management
region

【在 h******u 的大作中提到】
: 要看什么样的 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,

avatar
m*l
225
VS 2010, VS2012的已经非常不错了
F12的反向已经非常不错了

【在 x****u 的大作中提到】
: 这个找类方法调用处的功能是IDE插件的功劳,我倒是从来没用过。
avatar
m*l
226
这个是managed的优势

【在 b***i 的大作中提到】
: 这对记忆不好的老年工程师可是个重要的功能。
: 同样VS2012, C#就有这个功能,可见C++有些设计有问题。或者是C就有这些问题,不好
: 解决。

avatar
d*x
227
软件有对各部分组件行为的先验知识啊。。。

【在 x****u 的大作中提到】
: 你软件怎么预测?
avatar
b*i
228
所以说,完美后标准化,就不用管了。谁自己装配一辆车?直接买了就开了。

【在 m*******l 的大作中提到】
: JVM里面的完美的内存管理难道不是C++程序员写的?
avatar
h*3
229
从Java 1.4之后,JVM里面的内存管理技术和优化技术,融入了很多前沿的研究成果。
很多成果还被专利保护起来。一般不是做优化这块的Researcher,根本写不出来。我们
不能说,只有做内存管理优化的Researcher才是优秀的C/C++程序员吧。

【在 m*******l 的大作中提到】
: JVM里面的完美的内存管理难道不是C++程序员写的?
avatar
g*g
230
术业有专攻,现代大型软件是层层抽象的结果。每个层都有难点。比如写JVM的C/C++程
序员
不用考虑整个cluster结点之间通信,failover这些东西。哪个更难,本来跟苹果跟桔
子哪个
更好吃差不多。
但是有人觉得我写得底层,所以我牛逼,见到写Java的鼻子朝天,见到写汇编的就不好
意思出来打招呼。

【在 h********3 的大作中提到】
: 从Java 1.4之后,JVM里面的内存管理技术和优化技术,融入了很多前沿的研究成果。
: 很多成果还被专利保护起来。一般不是做优化这块的Researcher,根本写不出来。我们
: 不能说,只有做内存管理优化的Researcher才是优秀的C/C++程序员吧。

avatar
z*3
231
而且貌似提升的幅度很大
Java 5 <=== 18% faster=== < Java 6 < ===46% faster===< Java 7
Read more:
http://geeknizer.com/java-7-whats-new-performance-benchmark-1-5

【在 h********3 的大作中提到】
: 从Java 1.4之后,JVM里面的内存管理技术和优化技术,融入了很多前沿的研究成果。
: 很多成果还被专利保护起来。一般不是做优化这块的Researcher,根本写不出来。我们
: 不能说,只有做内存管理优化的Researcher才是优秀的C/C++程序员吧。

avatar
b*i
232
就是,工作在哪个领域,就说明社会需要哪个领域的人才。
我一个同学学计算机的,后来研究集成电路设计了,就看不起做软件的了。还有一次去
招聘会,看到AMD的招聘的人,跟他聊,他说他们那个组是“做半导体工艺的,那才是
真正的做芯片。”他就觉得连芯片设计的都没做正经事。

【在 g*****g 的大作中提到】
: 术业有专攻,现代大型软件是层层抽象的结果。每个层都有难点。比如写JVM的C/C++程
: 序员
: 不用考虑整个cluster结点之间通信,failover这些东西。哪个更难,本来跟苹果跟桔
: 子哪个
: 更好吃差不多。
: 但是有人觉得我写得底层,所以我牛逼,见到写Java的鼻子朝天,见到写汇编的就不好
: 意思出来打招呼。

avatar
c*e
233
都是混饭吃。

【在 b***i 的大作中提到】
: 就是,工作在哪个领域,就说明社会需要哪个领域的人才。
: 我一个同学学计算机的,后来研究集成电路设计了,就看不起做软件的了。还有一次去
: 招聘会,看到AMD的招聘的人,跟他聊,他说他们那个组是“做半导体工艺的,那才是
: 真正的做芯片。”他就觉得连芯片设计的都没做正经事。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。