F****n 发帖数: 3271 | 1 Java比C和Stack上的C++慢, 但差距不大,即使是多层的loop,现在基本上也是一个数
量级。现在还说Java慢的,大多数是不懂如何benchmark Java的。
Java的主要问题是不能做Real Time,一是因为JIT编印器要达到全速需要warm up, 二
是GC stop the world 的问题仍没有解决,而这两个都是在JVM以外无法控制的。
Java比C++有一大优势就是heap allocation (i.e. new) 快很多
为什么?因为Java自己 manage heap, Object creation的速度不是C++能比的。所以很
多projects Java out-perform C++很正常。与此同时Memory用量也大,一个小程序也
要用几百兆,因为这其实不是程序用了,是JVM给占了。所以benchmark的时候直接比内
存无意义。 |
x****d 发帖数: 1766 | 2 gc不是可以定制么?定制了能解决你说的stop the world么?用gc怎么也要停一下,无
解?
顺带问一下,有谁用过定制的gc?
定制gc市场好像在萎缩,而且很厉害,为什么? |
T******7 发帖数: 1419 | 3 可以 disable gc.手动回收内存。 if you want
:D
【在 x****d 的大作中提到】 : gc不是可以定制么?定制了能解决你说的stop the world么?用gc怎么也要停一下,无 : 解? : 顺带问一下,有谁用过定制的gc? : 定制gc市场好像在萎缩,而且很厉害,为什么?
|
w**z 发帖数: 8232 | 4 Zing JVM 号称无pause
【在 x****d 的大作中提到】 : gc不是可以定制么?定制了能解决你说的stop the world么?用gc怎么也要停一下,无 : 解? : 顺带问一下,有谁用过定制的gc? : 定制gc市场好像在萎缩,而且很厉害,为什么?
|
c*******2 发帖数: 66 | 5 Android 上的手势操作总不如 IOS上平滑是不是用Java造成的? |
g*****g 发帖数: 34805 | 6 不是,据说最大原因是4.x 之后才在这方面做了优化。但应用为了尽量向下兼容,都没
敢用新的 api。
【在 c*******2 的大作中提到】 : Android 上的手势操作总不如 IOS上平滑是不是用Java造成的?
|
z****e 发帖数: 54598 | 7 因为没有市场
real time在server side其实意义不大
一个网络的latency都异常的巨大
分布式本身也有各种latency,算下来,单机gc那点停顿其实不算什么
就像有人说老魏的那样,一个ping都20ms,你实现ns级有什么意义?
现在主要是手机上还有点用,因为gc停顿有时候还是能感觉到
不过随着内存和cpu的性能往上飙升,这点停顿也没啥大不了的
我现在都在想如何disable掉android jvm的gc
因为没有必要,2d的东西吃不了什么内存
还有就是real time一般要通过硬件来配合
主要用在导弹拦截这种领域,但是一般民用领域
谁没事按照导弹拦截的标准去倒腾自己的电脑啊?
【在 x****d 的大作中提到】 : gc不是可以定制么?定制了能解决你说的stop the world么?用gc怎么也要停一下,无 : 解? : 顺带问一下,有谁用过定制的gc? : 定制gc市场好像在萎缩,而且很厉害,为什么?
|
z****e 发帖数: 54598 | 8 我现在最吃内存的一般是图片
但是现在图片也越来越小
各种压缩,png加上无损压缩
都可以实现40%左右的节省
所以不搞3d的话,内存真没什么必要去搞 |
l***p 发帖数: 358 | 9 C++ community 没有搞一个通用的内存分配方案出来? 每次都跟系统back and forth
是很笨
不过说Java比C++快,除了开发部署块,运行速度怎么可能比的上呢?
前几天一个同事说GC一起来,立马掉了40%的性能 |
l***p 发帖数: 358 | 10 楼上说的对,互联网的应用bottleneck在于IO,不在于CPU bound
所以C++这块阵地是保不住的 |
|
|
F****n 发帖数: 3271 | 11 这个是VM和非VM的区别,Object内存分配要像Java一样快,
需要建立在对heap全方位管理的基础上,比如在gc时对内存块进行必要的sort, move
C++如果搞一个这种方案,他就成另一个Java了。
性能上说,Java 肯定不如C,但经常比C++强。越OO的C++程序越容易输给Java
forth
【在 l***p 的大作中提到】 : C++ community 没有搞一个通用的内存分配方案出来? 每次都跟系统back and forth : 是很笨 : 不过说Java比C++快,除了开发部署块,运行速度怎么可能比的上呢? : 前几天一个同事说GC一起来,立马掉了40%的性能
|
g*****g 发帖数: 34805 | 12 应该这么说,跟server vm比,弄个小程序,拼命优化,C++可以比Java快。但大部分程
序员根本写不出来。
【在 F****n 的大作中提到】 : 这个是VM和非VM的区别,Object内存分配要像Java一样快, : 需要建立在对heap全方位管理的基础上,比如在gc时对内存块进行必要的sort, move : C++如果搞一个这种方案,他就成另一个Java了。 : 性能上说,Java 肯定不如C,但经常比C++强。越OO的C++程序越容易输给Java : : forth
|
F****n 发帖数: 3271 | 13 即使这样也很难mock Java heap,因为C++ new是直接heap access, 分配了后系统无法
控制.
Java new 内存仍然由JVM掌控,可以优化。new object在不gc的情况下很多JVM只需要
increment几个pointers
除非他不用new, 而是像JVM一样先分配一大块内存,然后再上面用type cast pointer
的办法来操作objects。这样相当于重写半个JVM
【在 g*****g 的大作中提到】 : 应该这么说,跟server vm比,弄个小程序,拼命优化,C++可以比Java快。但大部分程 : 序员根本写不出来。
|
b*******s 发帖数: 5216 | 14 善意提醒,有个概念叫内存池
pointer
【在 F****n 的大作中提到】 : 即使这样也很难mock Java heap,因为C++ new是直接heap access, 分配了后系统无法 : 控制. : Java new 内存仍然由JVM掌控,可以优化。new object在不gc的情况下很多JVM只需要 : increment几个pointers : 除非他不用new, 而是像JVM一样先分配一大块内存,然后再上面用type cast pointer : 的办法来操作objects。这样相当于重写半个JVM
|
F****n 发帖数: 3271 | 15 C++ cannot restructure memory blocks in a memory pool once those blocks are
allocated. JVM can optimize its memory pools whenever necessary.
【在 b*******s 的大作中提到】 : 善意提醒,有个概念叫内存池 : : pointer
|
b*******s 发帖数: 5216 | 16 呵呵
are
【在 F****n 的大作中提到】 : C++ cannot restructure memory blocks in a memory pool once those blocks are : allocated. JVM can optimize its memory pools whenever necessary.
|
F****n 发帖数: 3271 | 17 Memory pool is the first step towards a managed memory allocation.
Eventually you are reinventing JVM memory management, which is essentially
based on actively-managed memory pools. If that's what you
want of course you can do that. Most JVMs are written in C.
【在 b*******s 的大作中提到】 : 呵呵 : : are
|
n******t 发帖数: 4406 | 18 凡是争论Java性能好的,基本上都是连对系统编程一点概念都没有的人。
【在 F****n 的大作中提到】 : Java比C和Stack上的C++慢, 但差距不大,即使是多层的loop,现在基本上也是一个数 : 量级。现在还说Java慢的,大多数是不懂如何benchmark Java的。 : Java的主要问题是不能做Real Time,一是因为JIT编印器要达到全速需要warm up, 二 : 是GC stop the world 的问题仍没有解决,而这两个都是在JVM以外无法控制的。 : Java比C++有一大优势就是heap allocation (i.e. new) 快很多 : 为什么?因为Java自己 manage heap, Object creation的速度不是C++能比的。所以很 : 多projects Java out-perform C++很正常。与此同时Memory用量也大,一个小程序也 : 要用几百兆,因为这其实不是程序用了,是JVM给占了。所以benchmark的时候直接比内 : 存无意义。
|
x****u 发帖数: 44466 | 19 这个真不一定,尤其是C++无限制用非常多的库的时候,性能比Java低几乎是一定的。
Windows上面跑同样的应用远比安卓慢大致就是这个原因。
【在 n******t 的大作中提到】 : 凡是争论Java性能好的,基本上都是连对系统编程一点概念都没有的人。
|
N******K 发帖数: 10202 | 20 Java搞科学计算 在图像分析领域目前最高水平代表作
http://developer.imagej.net/2013/06/12/imagej-v200-beta-7
还在从多维数组开始轮起
顺便问问 Java有模板吗?
【在 F****n 的大作中提到】 : Java比C和Stack上的C++慢, 但差距不大,即使是多层的loop,现在基本上也是一个数 : 量级。现在还说Java慢的,大多数是不懂如何benchmark Java的。 : Java的主要问题是不能做Real Time,一是因为JIT编印器要达到全速需要warm up, 二 : 是GC stop the world 的问题仍没有解决,而这两个都是在JVM以外无法控制的。 : Java比C++有一大优势就是heap allocation (i.e. new) 快很多 : 为什么?因为Java自己 manage heap, Object creation的速度不是C++能比的。所以很 : 多projects Java out-perform C++很正常。与此同时Memory用量也大,一个小程序也 : 要用几百兆,因为这其实不是程序用了,是JVM给占了。所以benchmark的时候直接比内 : 存无意义。
|
|
|
N******K 发帖数: 10202 | 21 c++ 目前特长是搞数值计算 而不是应用于web 是把东西搬来搬去
【在 x****u 的大作中提到】 : 这个真不一定,尤其是C++无限制用非常多的库的时候,性能比Java低几乎是一定的。 : Windows上面跑同样的应用远比安卓慢大致就是这个原因。
|
x****u 发帖数: 44466 | 22 数值计算关键是要上GPU啊。
【在 N******K 的大作中提到】 : c++ 目前特长是搞数值计算 而不是应用于web 是把东西搬来搬去
|
N******K 发帖数: 10202 | 23 目前用多核
正在看看 怎么搞GPU
【在 x****u 的大作中提到】 : 数值计算关键是要上GPU啊。
|
g*****g 发帖数: 34805 | 24 看你编什么程序。编server应用C++要写得比Java性能好,很困难。client端就容易一
些。
【在 n******t 的大作中提到】 : 凡是争论Java性能好的,基本上都是连对系统编程一点概念都没有的人。
|
x****u 发帖数: 44466 | 25 Windows 8表示很不容易。
【在 g*****g 的大作中提到】 : 看你编什么程序。编server应用C++要写得比Java性能好,很困难。client端就容易一 : 些。
|
d****i 发帖数: 4809 | 26 好像图形图像领域的lib毫无例外都是C++写的,OpenGL, OpenCV, ITK等等。这种东西
还是C++最擅长的。
【在 N******K 的大作中提到】 : Java搞科学计算 在图像分析领域目前最高水平代表作 : http://developer.imagej.net/2013/06/12/imagej-v200-beta-7 : 还在从多维数组开始轮起 : 顺便问问 Java有模板吗?
|
g*********e 发帖数: 14401 | 27 大家的讨论点不一样 有些人都是从web为出发点 有些人搞桌面程序,有些人从科学计
算作为出发点,根本讨论不到一块
【在 N******K 的大作中提到】 : c++ 目前特长是搞数值计算 而不是应用于web 是把东西搬来搬去
|
z****e 发帖数: 54598 | 28 现在图形学出来就业
除了游戏公司,还有什么地方好去?
咋对这个领域也算是有点了解
因为稍微有点知识的都知道
这个半球最大的一个这个处理中心就在这里
但是目前主要应用是在生物信息上
然后这里一些prof.的研究结果port到游戏产业上去
其它没有了,一般公司很少说对3d图形有这么高的要求
2d绰绰有余了
你说这个行当是屎坑,其实我也没啥好否认的
【在 d****i 的大作中提到】 : 好像图形图像领域的lib毫无例外都是C++写的,OpenGL, OpenCV, ITK等等。这种东西 : 还是C++最擅长的。
|
z****e 发帖数: 54598 | 29 当年搞图形的,北美就是蒙特利尔了
给电影做点特效
这个行业很悲催的,搬来搬去
哪里有补贴,就往哪里跑
去蒙特利尔也是因为蒙特利尔对电影特效做税率上的补助
所以就往那里跑,美帝本土的都快倒闭光了
那个做少年派的特效公司,电影上市之后就挂了
也算是这个行业的缩影 |
g*********e 发帖数: 14401 | 30
nvda intc 的算法设计 gpu设计 有一些职位
【在 z****e 的大作中提到】 : 现在图形学出来就业 : 除了游戏公司,还有什么地方好去? : 咋对这个领域也算是有点了解 : 因为稍微有点知识的都知道 : 这个半球最大的一个这个处理中心就在这里 : 但是目前主要应用是在生物信息上 : 然后这里一些prof.的研究结果port到游戏产业上去 : 其它没有了,一般公司很少说对3d图形有这么高的要求 : 2d绰绰有余了 : 你说这个行当是屎坑,其实我也没啥好否认的
|
|
|
F****n 发帖数: 3271 | 31 这才是典型的无知
【在 n******t 的大作中提到】 : 凡是争论Java性能好的,基本上都是连对系统编程一点概念都没有的人。
|
F****n 发帖数: 3271 | 32 这不是C++的特长,这是C的特长
C++的优点主要是C的优点,其他几乎一无是处。
【在 N******K 的大作中提到】 : c++ 目前特长是搞数值计算 而不是应用于web 是把东西搬来搬去
|
F****n 发帖数: 3271 | 33 科学计算用C和Fortran就行了。
【在 g*********e 的大作中提到】 : 大家的讨论点不一样 有些人都是从web为出发点 有些人搞桌面程序,有些人从科学计 : 算作为出发点,根本讨论不到一块
|
b*******s 发帖数: 5216 | 34 好吧,为了提高cache命中率,通常需要你做什么?
【在 F****n 的大作中提到】 : 这才是典型的无知
|
F****n 发帖数: 3271 | 35 Watching pointer locality
【在 b*******s 的大作中提到】 : 好吧,为了提高cache命中率,通常需要你做什么?
|
b*******s 发帖数: 5216 | 36 google了半天就只有这个?
【在 F****n 的大作中提到】 : Watching pointer locality
|
F****n 发帖数: 3271 | 37 这还用的着google, 常识。
【在 b*******s 的大作中提到】 : google了半天就只有这个?
|
b*******s 发帖数: 5216 | 38 那就问你个简单常识问题,两个堆上的变量,距离4个bytes,设计时需要考虑什么副作用
【在 F****n 的大作中提到】 : 这还用的着google, 常识。
|
F****n 发帖数: 3271 | 39 不明白啥叫两个变量距离4个bytes
作用
【在 b*******s 的大作中提到】 : 那就问你个简单常识问题,两个堆上的变量,距离4个bytes,设计时需要考虑什么副作用
|
b*******s 发帖数: 5216 | 40 地址
【在 F****n 的大作中提到】 : 不明白啥叫两个变量距离4个bytes : : 作用
|
|
|
F****n 发帖数: 3271 | 41 What if long or double types?
【在 b*******s 的大作中提到】 : 地址
|
b*******s 发帖数: 5216 | 42 随便你假设,4bytes也不是非要,只要地址差不够大
【在 F****n 的大作中提到】 : What if long or double types?
|
b*******s 发帖数: 5216 | 43 这是一个问题,再问个你可以google的问题,什么时候该用spin lock
尽量展开,看你能讲到什么程度
【在 F****n 的大作中提到】 : What if long or double types?
|
F****n 发帖数: 3271 | 44
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Why am I keeping wasting time with you.
【在 b*******s 的大作中提到】 : 这是一个问题,再问个你可以google的问题,什么时候该用spin lock : 尽量展开,看你能讲到什么程度
|
b*******s 发帖数: 5216 | 45 好问题,不过你为什么对你不懂的领域大放厥词呢
【在 F****n 的大作中提到】 : : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : Why am I keeping wasting time with you.
|
b*******s 发帖数: 5216 | 46 其实就你那点对系统编程的理解,随便你google
【在 F****n 的大作中提到】 : : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : Why am I keeping wasting time with you.
|
F****n 发帖数: 3271 | 47 啥领域?我一直在说C++动态分配不一定能beat JVM,
除此之外,我放了啥厥词?
【在 b*******s 的大作中提到】 : 好问题,不过你为什么对你不懂的领域大放厥词呢
|
F****n 发帖数: 3271 | 48 你这意思就是反正你说了也是google的。
【在 b*******s 的大作中提到】 : 其实就你那点对系统编程的理解,随便你google
|
b*******s 发帖数: 5216 | 49 hoho
【在 F****n 的大作中提到】 : 这才是典型的无知
|
F****n 发帖数: 3271 | 50 这确实是无知啊
【在 b*******s 的大作中提到】 : hoho
|
|
|
F****n 发帖数: 3271 | 51 而且这种无知跟系统编程一点关系没有,
而是要么没认真读别人的帖子,
要么对JVM一点也不了解。
【在 F****n 的大作中提到】 : 这确实是无知啊
|
b*******s 发帖数: 5216 | 52 要不我们做个benchmark吧,就比对象分配速度
你用java,我用c++
【在 F****n 的大作中提到】 : 而且这种无知跟系统编程一点关系没有, : 而是要么没认真读别人的帖子, : 要么对JVM一点也不了解。
|
F****n 发帖数: 3271 | 53 早就有人做过了,结论是 depends
前面说内存堆你也"hoho",
我看你也没想明白Java为啥很多时候会outperform C++吧。
【在 b*******s 的大作中提到】 : 要不我们做个benchmark吧,就比对象分配速度 : 你用java,我用c++
|
b*******s 发帖数: 5216 | 54 我们做profiling时不靠我“想”,而是靠数据
【在 F****n 的大作中提到】 : 早就有人做过了,结论是 depends : 前面说内存堆你也"hoho", : 我看你也没想明白Java为啥很多时候会outperform C++吧。
|
x****u 发帖数: 44466 | 55 比较同意,C++在几个非常特别的领域有点用,在其他地方用就是破坏人类和平。
【在 F****n 的大作中提到】 : 这不是C++的特长,这是C的特长 : C++的优点主要是C的优点,其他几乎一无是处。
|
d****i 发帖数: 4809 | 56 C++不像Java,大部分时间都是用stack variable创建对象,这样速度又快又不用担心
memory leak。如果是用在嵌入式场合,那么手动的new可以说完全不用也基本禁止使用
,都是调用专门的sys call来分配内存。
【在 F****n 的大作中提到】 : 早就有人做过了,结论是 depends : 前面说内存堆你也"hoho", : 我看你也没想明白Java为啥很多时候会outperform C++吧。
|
x****u 发帖数: 44466 | 57 如果光用Stack对象,直接用C就行了。
【在 d****i 的大作中提到】 : C++不像Java,大部分时间都是用stack variable创建对象,这样速度又快又不用担心 : memory leak。如果是用在嵌入式场合,那么手动的new可以说完全不用也基本禁止使用 : ,都是调用专门的sys call来分配内存。
|
F****n 发帖数: 3271 | 58 写paper时一定要 field survey 和 literature review
而不是必门造车。像这些东西的测试和结论出来也好几年了吧,
有点经验的人(特别是做系统编程的)应该多少对虚拟机有些了解吧
因为虚拟机实际上就是一个很好的系统程序。
【在 b*******s 的大作中提到】 : 我们做profiling时不靠我“想”,而是靠数据
|
d****i 发帖数: 4809 | 59 你这个论调极端了,用还是有的,主要是要正确使用。
【在 x****u 的大作中提到】 : 比较同意,C++在几个非常特别的领域有点用,在其他地方用就是破坏人类和平。
|
F****n 发帖数: 3271 | 60 This is my point.
【在 x****u 的大作中提到】 : 如果光用Stack对象,直接用C就行了。
|
|
|
d****i 发帖数: 4809 | 61 C没有OO.
【在 x****u 的大作中提到】 : 如果光用Stack对象,直接用C就行了。
|
b*******s 发帖数: 5216 | 62 你还在读书吧
【在 F****n 的大作中提到】 : 写paper时一定要 field survey 和 literature review : 而不是必门造车。像这些东西的测试和结论出来也好几年了吧, : 有点经验的人(特别是做系统编程的)应该多少对虚拟机有些了解吧 : 因为虚拟机实际上就是一个很好的系统程序。
|
b*******s 发帖数: 5216 | 63 嵌入式内存分配策略里静态分配只是一种,一般只有很少的情况使用
【在 d****i 的大作中提到】 : C++不像Java,大部分时间都是用stack variable创建对象,这样速度又快又不用担心 : memory leak。如果是用在嵌入式场合,那么手动的new可以说完全不用也基本禁止使用 : ,都是调用专门的sys call来分配内存。
|
x****u 发帖数: 44466 | 64 正确使用太难了,基本来说能正确使用C++的人都改行当神父了,剩下的人都是画个圈
子禁止用圈外特性。
【在 d****i 的大作中提到】 : 你这个论调极端了,用还是有的,主要是要正确使用。
|
F****n 发帖数: 3271 | 65 C has struct. The only advantage C++ offer is dynamic pointer, which is the
area where it can be beaten by Java.
【在 d****i 的大作中提到】 : C没有OO.
|
x****u 发帖数: 44466 | 66 用几个宏搞定也不难,COM也可以用C调用。
【在 d****i 的大作中提到】 : C没有OO.
|
F****n 发帖数: 3271 | 67 20年前
【在 b*******s 的大作中提到】 : 你还在读书吧
|
b*******s 发帖数: 5216 | 68 你就少胡扯淡了,对你不懂的东西还是谦虚一点
the
【在 F****n 的大作中提到】 : C has struct. The only advantage C++ offer is dynamic pointer, which is the : area where it can be beaten by Java.
|
b*******s 发帖数: 5216 | 69 很吃惊
【在 F****n 的大作中提到】 : 20年前
|
d****i 发帖数: 4809 | 70 这个版上很多会C++的人都躺着中枪了。。
【在 x****u 的大作中提到】 : 正确使用太难了,基本来说能正确使用C++的人都改行当神父了,剩下的人都是画个圈 : 子禁止用圈外特性。
|
|
|
F****n 发帖数: 3271 | 71 胡扯淡的是你吧, JVM 为啥有时会beat C++内存堆想明白没有?
【在 b*******s 的大作中提到】 : 你就少胡扯淡了,对你不懂的东西还是谦虚一点 : : the
|
x****u 发帖数: 44466 | 72 用C++非常难以写出没问题的代码来。Chrome搞tab进程隔离,就是因为解决不了崩溃和
泄露问题,索性搞损管,一个仓爆了也不影响整个浏览器。
【在 d****i 的大作中提到】 : 这个版上很多会C++的人都躺着中枪了。。
|
b*******s 发帖数: 5216 | 73 jvm都是c写的,而且还是个通用方案,在系统内存模型上还有一次抽象
你大概从来没做过对性能有要求的程序吧
【在 F****n 的大作中提到】 : 胡扯淡的是你吧, JVM 为啥有时会beat C++内存堆想明白没有?
|
x****u 发帖数: 44466 | 74 JVM的一大好处是,在某些情况下可以只分配不释放,用内存换速度。或者是用低优先
级的线程完成释放。
现代的大型系统的内存管理必须从整体考虑,每个对象退出scope就自动销毁的思路早
就过时了。
【在 F****n 的大作中提到】 : 胡扯淡的是你吧, JVM 为啥有时会beat C++内存堆想明白没有?
|
b*******s 发帖数: 5216 | 75 你的逻辑就是两个水平相当的短跑选手,其中一个背着自己的胖儿子,所以胖儿子比另
一个选手跑得快
【在 F****n 的大作中提到】 : 胡扯淡的是你吧, JVM 为啥有时会beat C++内存堆想明白没有?
|
F****n 发帖数: 3271 | 76 我看你还是没整明白,别吵了,再跟你说说吧
JVM其实就是一个高级的内存堆管理程序,但有个最大的区别就是JVM可以自由控制*已
经分配*
的内存块,
内存堆管理不管用什么数据结构总有一些overhead, 而且动态分配,回收后总有
fragment, 影响速度。
但是JVM由于可以控制和移动已分配的内存块,可以实现完全线性分配,弄一个大数组
,新object直接返回当前指针,满了就GC, defragment
很多情况下假设C++动态分配一次需要1,JVM只需要0.01,而且是连续内存。只不过分
配多次后要较长时间gc。Trade off之后,JVM和C++在动态分配上各占优势。
当然你也可以自己写一个分配程序,但要Mock JVM, 就必须隔绝指针和实现gc.
要做高性能的最好用C, 或者把C++当C用,尽量多用栈少用动态指针。
【在 b*******s 的大作中提到】 : jvm都是c写的,而且还是个通用方案,在系统内存模型上还有一次抽象 : 你大概从来没做过对性能有要求的程序吧
|
g*****g 发帖数: 34805 | 77 没啥难理解的。对于server程序来说,JIT效果很好,warmup之后跟native执行速度接
近。而GC在多核底下可以用空闲的核来GC。而C++程序通常不能。在client端,JIT和核
都相对少,所以不明显。
【在 F****n 的大作中提到】 : 我看你还是没整明白,别吵了,再跟你说说吧 : JVM其实就是一个高级的内存堆管理程序,但有个最大的区别就是JVM可以自由控制*已 : 经分配* : 的内存块, : 内存堆管理不管用什么数据结构总有一些overhead, 而且动态分配,回收后总有 : fragment, 影响速度。 : 但是JVM由于可以控制和移动已分配的内存块,可以实现完全线性分配,弄一个大数组 : ,新object直接返回当前指针,满了就GC, defragment : 很多情况下假设C++动态分配一次需要1,JVM只需要0.01,而且是连续内存。只不过分 : 配多次后要较长时间gc。Trade off之后,JVM和C++在动态分配上各占优势。
|
l*********s 发帖数: 5409 | 78 why don't they use java instead?
【在 x****u 的大作中提到】 : 用C++非常难以写出没问题的代码来。Chrome搞tab进程隔离,就是因为解决不了崩溃和 : 泄露问题,索性搞损管,一个仓爆了也不影响整个浏览器。
|
b*******s 发帖数: 5216 | 79 憋了半天你就憋出个这个啊,我在c++里用内存池,每次分配对象都是o(1)复杂度
【在 F****n 的大作中提到】 : 我看你还是没整明白,别吵了,再跟你说说吧 : JVM其实就是一个高级的内存堆管理程序,但有个最大的区别就是JVM可以自由控制*已 : 经分配* : 的内存块, : 内存堆管理不管用什么数据结构总有一些overhead, 而且动态分配,回收后总有 : fragment, 影响速度。 : 但是JVM由于可以控制和移动已分配的内存块,可以实现完全线性分配,弄一个大数组 : ,新object直接返回当前指针,满了就GC, defragment : 很多情况下假设C++动态分配一次需要1,JVM只需要0.01,而且是连续内存。只不过分 : 配多次后要较长时间gc。Trade off之后,JVM和C++在动态分配上各占优势。
|
F****n 发帖数: 3271 | 80 O(1)复杂度的Linked List和 Array, 你选哪个?
【在 b*******s 的大作中提到】 : 憋了半天你就憋出个这个啊,我在c++里用内存池,每次分配对象都是o(1)复杂度
|
|
|
b*******s 发帖数: 5216 | 81 而且不管是google的nacl还是firefox的asm.js都压根没考虑java什么事
【在 l*********s 的大作中提到】 : why don't they use java instead?
|
b*******s 发帖数: 5216 | 82 看具体情况,比如我要是核电站系统,后台有个东西在给我搬内存,人类说不定就要死
掉一大半
【在 F****n 的大作中提到】 : O(1)复杂度的Linked List和 Array, 你选哪个?
|
F****n 发帖数: 3271 | 83 你也知道要看具体情况啊
【在 b*******s 的大作中提到】 : 看具体情况,比如我要是核电站系统,后台有个东西在给我搬内存,人类说不定就要死 : 掉一大半
|
x****u 发帖数: 44466 | 84 Chrome又不是Google自己写的。
【在 l*********s 的大作中提到】 : why don't they use java instead?
|
x****u 发帖数: 44466 | 85 然后几百个模块都用自己的内存池。。。
【在 b*******s 的大作中提到】 : 憋了半天你就憋出个这个啊,我在c++里用内存池,每次分配对象都是o(1)复杂度
|
x****u 发帖数: 44466 | 86 没几个人敢在核电站用C++
【在 b*******s 的大作中提到】 : 看具体情况,比如我要是核电站系统,后台有个东西在给我搬内存,人类说不定就要死 : 掉一大半
|
l*********s 发帖数: 5409 | 87 still, why isn't it written in java or net? If it is google's own product,
it is more likely to be written in c++ than java as google has enough
talents.
【在 x****u 的大作中提到】 : Chrome又不是Google自己写的。
|
z****e 发帖数: 54598 | 88 做这个没有钱啊
做浏览器赚钱,那还要往前推整整20年,netscape那个年代
现在除了少数开源的,还有一些大公司往这里面去砸钱
谁还往这个屎坑里跳?
也不仅仅是这个行当不赚钱,db什么,你现在去做
也都不赚钱,有理想固然ok,但是填饱肚子是很现实的问题
开源一来,你怎么办?微软搞个ie赔得死去活来
等好不容易有一片天空了,chrome起来了
前面投入都打水漂了,多苦逼的一个行当
java做浏览器的开源项目不是没有
http://lobobrowser.org/java-browser.jsp
问题在于,没有人投入,这种没有什么意义的事情没什么人爱做
,
【在 l*********s 的大作中提到】 : still, why isn't it written in java or net? If it is google's own product, : it is more likely to be written in c++ than java as google has enough : talents.
|
F****n 发帖数: 3271 | 89 Because using C++ allows to directly write high-performance C code. But that
does not justify C++ as an OOP language. C++ is not a good language. In
fact the only case I want to use C++ is when I have to use some C++ library.
,
【在 l*********s 的大作中提到】 : still, why isn't it written in java or net? If it is google's own product, : it is more likely to be written in c++ than java as google has enough : talents.
|
x****u 发帖数: 44466 | 90 Google正忙着重新发明轮子呢,这事情在优先级上排第203位。
,
【在 l*********s 的大作中提到】 : still, why isn't it written in java or net? If it is google's own product, : it is more likely to be written in c++ than java as google has enough : talents.
|
|
|
l*********s 发帖数: 5409 | 91 不管赚不赚钱,开发,维护都是开销,为啥不用生产力更高的语言呢? goole和微软,
mozzila都嫌钱多扎手?
【在 z****e 的大作中提到】 : 做这个没有钱啊 : 做浏览器赚钱,那还要往前推整整20年,netscape那个年代 : 现在除了少数开源的,还有一些大公司往这里面去砸钱 : 谁还往这个屎坑里跳? : 也不仅仅是这个行当不赚钱,db什么,你现在去做 : 也都不赚钱,有理想固然ok,但是填饱肚子是很现实的问题 : 开源一来,你怎么办?微软搞个ie赔得死去活来 : 等好不容易有一片天空了,chrome起来了 : 前面投入都打水漂了,多苦逼的一个行当 : java做浏览器的开源项目不是没有
|
l*********s 发帖数: 5409 | 92 排名前20的是啥?不用分名次了,lol
【在 x****u 的大作中提到】 : Google正忙着重新发明轮子呢,这事情在优先级上排第203位。 : : ,
|
x****u 发帖数: 44466 | 93 这三家的浏览器都是在十几年前的基础上修修补补,MS从16位用到64的C代码也不少。
【在 l*********s 的大作中提到】 : 不管赚不赚钱,开发,维护都是开销,为啥不用生产力更高的语言呢? goole和微软, : mozzila都嫌钱多扎手?
|
z****e 发帖数: 54598 | 94 人家没打算用这个赚钱,你见到说chrome赚钱的消息了么?
开源有几个打算赚钱的?
【在 l*********s 的大作中提到】 : 不管赚不赚钱,开发,维护都是开销,为啥不用生产力更高的语言呢? goole和微软, : mozzila都嫌钱多扎手?
|
x****u 发帖数: 44466 | 95 火星殖民,核聚变和星际旅行都在重写浏览器内核之前。
【在 l*********s 的大作中提到】 : 排名前20的是啥?不用分名次了,lol
|
l*********s 发帖数: 5409 | 96 well, that is only a statement for yourself. And since you know so little
about c++ anyway, it hardly matters :-)
that
library.
【在 F****n 的大作中提到】 : Because using C++ allows to directly write high-performance C code. But that : does not justify C++ as an OOP language. C++ is not a good language. In : fact the only case I want to use C++ is when I have to use some C++ library. : : ,
|
l*********s 发帖数: 5409 | 97 呼唤逻辑,一个不赚钱的项目才更有削减成本的压力。
【在 z****e 的大作中提到】 : 人家没打算用这个赚钱,你见到说chrome赚钱的消息了么? : 开源有几个打算赚钱的?
|
F****n 发帖数: 3271 | 98 Most people who do not need to rely on C++ to make a living agree with me.
Linus Tolvads agree with me (although he said Java was also horrible:). I
was an MCSD working with VC++ in 90s before I switched to Java. I know how
bad C++ can be.
【在 l*********s 的大作中提到】 : well, that is only a statement for yourself. And since you know so little : about c++ anyway, it hardly matters :-) : : that : library.
|
z****e 发帖数: 54598 | 99 也有削减成本啊,都是拿着十几年前的东西修修改改
你看chrome和android搞webview,有自己从kernel开始重新做一遍么?
没有吧,还不是webkit直接拿过来就用了,这就是削减成本的行为啊
顺便java也有webkit了
【在 l*********s 的大作中提到】 : 呼唤逻辑,一个不赚钱的项目才更有削减成本的压力。
|
x****u 发帖数: 44466 | 100 全部重写是消减成本的方式?你明显没在软件业混过。
【在 l*********s 的大作中提到】 : 呼唤逻辑,一个不赚钱的项目才更有削减成本的压力。
|
|
|
x****u 发帖数: 44466 | 101 说实在的MS的C++算是众多生态环境里面最干净的了,基本上人们就是在做两件事,用C
++写COM以及用C++调COM。
【在 F****n 的大作中提到】 : Most people who do not need to rely on C++ to make a living agree with me. : Linus Tolvads agree with me (although he said Java was also horrible:). I : was an MCSD working with VC++ in 90s before I switched to Java. I know how : bad C++ can be.
|
l*********s 发帖数: 5409 | 102 chrome is released in 2009.
【在 x****u 的大作中提到】 : 全部重写是消减成本的方式?你明显没在软件业混过。
|
z****e 发帖数: 54598 | 103 所以webkit直接拿过来就用了
【在 l*********s 的大作中提到】 : chrome is released in 2009.
|
x****u 发帖数: 44466 | 104 Chrome是基于上世纪的KHTML的衍生品WebKit。
另外WebKit不可能采用JAVA,因为其另一大使用者是Apple。
【在 l*********s 的大作中提到】 : chrome is released in 2009.
|
F****n 发帖数: 3271 | 105 看你做什么,做前台不错,VC的IDE很好,比Eclipse好多了
但要做一些OO的Business Logic就很头大。
用C
【在 x****u 的大作中提到】 : 说实在的MS的C++算是众多生态环境里面最干净的了,基本上人们就是在做两件事,用C : ++写COM以及用C++调COM。
|
z****e 发帖数: 54598 | 106 java可以采用webkit
比如android和javafx
webkit要支援java需要把自己变成一个jvm,那太可怕了
但是反过来,是完全可行的,jvm可以把webkit给包括进来
使用webkit来做layout engine
【在 x****u 的大作中提到】 : Chrome是基于上世纪的KHTML的衍生品WebKit。 : 另外WebKit不可能采用JAVA,因为其另一大使用者是Apple。
|
x****u 发帖数: 44466 | 107 COM相当于原始阶段的C#或者Java。
【在 F****n 的大作中提到】 : 看你做什么,做前台不错,VC的IDE很好,比Eclipse好多了 : 但要做一些OO的Business Logic就很头大。 : : 用C
|
x****u 发帖数: 44466 | 108 WebKit当时写的时候如果基于ObjC这种内存管理灵活的东西,可以实现更好的稳定性和
效率。问题是古人也不是神仙。
【在 z****e 的大作中提到】 : java可以采用webkit : 比如android和javafx : webkit要支援java需要把自己变成一个jvm,那太可怕了 : 但是反过来,是完全可行的,jvm可以把webkit给包括进来 : 使用webkit来做layout engine
|
z****e 发帖数: 54598 | 109 嗯,就跟fb做出hhvm一样
教主当年也在学习,殊途同归
【在 x****u 的大作中提到】 : WebKit当时写的时候如果基于ObjC这种内存管理灵活的东西,可以实现更好的稳定性和 : 效率。问题是古人也不是神仙。
|
F****n 发帖数: 3271 | 110 那时候必须得会DCOM和CORBA
IUnknown啥的Stupid
CORBA后来做Java RMI的项目发挥了作用,
当时感叹终于没有白学。
结果几年都改Web Service了。
【在 x****u 的大作中提到】 : COM相当于原始阶段的C#或者Java。
|
|
|
n******t 发帖数: 4406 | 111 IE纯粹是tmd的微软烂好不好?
【在 z****e 的大作中提到】 : 做这个没有钱啊 : 做浏览器赚钱,那还要往前推整整20年,netscape那个年代 : 现在除了少数开源的,还有一些大公司往这里面去砸钱 : 谁还往这个屎坑里跳? : 也不仅仅是这个行当不赚钱,db什么,你现在去做 : 也都不赚钱,有理想固然ok,但是填饱肚子是很现实的问题 : 开源一来,你怎么办?微软搞个ie赔得死去活来 : 等好不容易有一片天空了,chrome起来了 : 前面投入都打水漂了,多苦逼的一个行当 : java做浏览器的开源项目不是没有
|
t*****n 发帖数: 4908 | 112 使用什么语言是CTO/CEO操心的事。没混到这个份上,说什么都没用。老板让你用什么
就是什么。如果是找公司,都看看没错。
【在 F****n 的大作中提到】 : O(1)复杂度的Linked List和 Array, 你选哪个?
|
x****u 发帖数: 44466 | 113 IT之家(www.ithome.com):10月浏览器市场份额:IE新高,Chrome创新低
市场研究机构Net Applications的最新数据显示,10月,微软IE浏览器市场份额再创新
高,而Chrome浏览器的市场占有率则跌至谷底。
9月到10月,IE市场份额从57.8%增加至58.22%,环比增加0.42%;Firefox市场份额从18
.6%增加至18.7%,环比增加0.1%;Chrome市场份额从15.96%减少至15.42%,环比下滑0.
54%;Safari市场份额为5.84%,环比增加0.07%;Opera市场份额环比下滑0.05%,占比
仅为1.42%。
【在 n******t 的大作中提到】 : IE纯粹是tmd的微软烂好不好?
|
z****e 发帖数: 54598 | 114 微软做ie的时候可是大臭臭嘴里操硅公一万遍的时候
那个时候最牛的码农可都在微软
如果最牛的码农尚且烂成这样,其它的就可想而知了
【在 n******t 的大作中提到】 : IE纯粹是tmd的微软烂好不好?
|
F****n 发帖数: 3271 | 115 IE刚出来的时候把Netscape操死了
【在 z****e 的大作中提到】 : 微软做ie的时候可是大臭臭嘴里操硅公一万遍的时候 : 那个时候最牛的码农可都在微软 : 如果最牛的码农尚且烂成这样,其它的就可想而知了
|
x****u 发帖数: 44466 | 116 几年前IE被人大骂的时候,MS内部都没专门的开发团队了。
【在 F****n 的大作中提到】 : IE刚出来的时候把Netscape操死了
|
b*******s 发帖数: 5216 | 117 做浏览器和类似amazon做kindle做一台亏一台的目的是一样的
一个商业模式
【在 z****e 的大作中提到】 : 做这个没有钱啊 : 做浏览器赚钱,那还要往前推整整20年,netscape那个年代 : 现在除了少数开源的,还有一些大公司往这里面去砸钱 : 谁还往这个屎坑里跳? : 也不仅仅是这个行当不赚钱,db什么,你现在去做 : 也都不赚钱,有理想固然ok,但是填饱肚子是很现实的问题 : 开源一来,你怎么办?微软搞个ie赔得死去活来 : 等好不容易有一片天空了,chrome起来了 : 前面投入都打水漂了,多苦逼的一个行当 : java做浏览器的开源项目不是没有
|
b*******s 发帖数: 5216 | 118 怪不得,微软c++的
【在 F****n 的大作中提到】 : Most people who do not need to rely on C++ to make a living agree with me. : Linus Tolvads agree with me (although he said Java was also horrible:). I : was an MCSD working with VC++ in 90s before I switched to Java. I know how : bad C++ can be.
|
b*******s 发帖数: 5216 | 119 说实话,你这笑话不错
用C
【在 x****u 的大作中提到】 : 说实在的MS的C++算是众多生态环境里面最干净的了,基本上人们就是在做两件事,用C : ++写COM以及用C++调COM。
|
x****u 发帖数: 44466 | 120 这个现象充分说明了C++的致命问题在哪里。
【在 b*******s 的大作中提到】 : 说实话,你这笑话不错 : : 用C
|
|
|
z****e 发帖数: 54598 | 121 kindle还有game console这种都是通过先赔钱
然后再通过向卖app的收保护费把钱给赚回来
浏览器虽然也是一个plaform,但是问题是上面没有什么app可以卖
所以要回本就接近不可能了
【在 b*******s 的大作中提到】 : 做浏览器和类似amazon做kindle做一台亏一台的目的是一样的 : 一个商业模式
|
b*******s 发帖数: 5216 | 122 其实你们几个对c++的认识,顶多到了98标准,对c++究竟现在是什么样的
基本一无所知
【在 x****u 的大作中提到】 : 这个现象充分说明了C++的致命问题在哪里。
|
x****u 发帖数: 44466 | 123 现在C++标准和库里面有更多的垃圾。
比如说某些人歌颂的那个shared_ptr,就是将来不知道要坑多少人的东西。
【在 b*******s 的大作中提到】 : 其实你们几个对c++的认识,顶多到了98标准,对c++究竟现在是什么样的 : 基本一无所知
|
b*******s 发帖数: 5216 | 124 我觉得你根本没看懂那个设计,我觉得那个设计既高效又简洁优美
【在 x****u 的大作中提到】 : 现在C++标准和库里面有更多的垃圾。 : 比如说某些人歌颂的那个shared_ptr,就是将来不知道要坑多少人的东西。
|
x****u 发帖数: 44466 | 125 觉得这个设计优美的和当兵三年看老母猪双眼皮一个道理。这玩意出来之前,各大
Framework怎么玩的你看过没?
【在 b*******s 的大作中提到】 : 我觉得你根本没看懂那个设计,我觉得那个设计既高效又简洁优美
|
b*******s 发帖数: 5216 | 126 你介绍下?要不你先介绍下shared_ptr是怎么设计的吧,假定你读过源代码了
【在 x****u 的大作中提到】 : 觉得这个设计优美的和当兵三年看老母猪双眼皮一个道理。这玩意出来之前,各大 : Framework怎么玩的你看过没?
|
b*******s 发帖数: 5216 | 127 然后你可以举一个你觉得更好的设计
【在 x****u 的大作中提到】 : 觉得这个设计优美的和当兵三年看老母猪双眼皮一个道理。这玩意出来之前,各大 : Framework怎么玩的你看过没?
|
x****u 发帖数: 44466 | 128 这玩意的最大陷阱就是还是完全不考虑ABI兼容性,地球上其他的C++引用计数智能指针
都不得不继续给它插屁股。
对于任何生成两个以上目标文件的工程来说,这玩意都可能引发灾难后果。
【在 b*******s 的大作中提到】 : 你介绍下?要不你先介绍下shared_ptr是怎么设计的吧,假定你读过源代码了
|
b*******s 发帖数: 5216 | 129 totally crap,你怎么混进微软的
【在 x****u 的大作中提到】 : 这玩意的最大陷阱就是还是完全不考虑ABI兼容性,地球上其他的C++引用计数智能指针 : 都不得不继续给它插屁股。 : 对于任何生成两个以上目标文件的工程来说,这玩意都可能引发灾难后果。
|
x****u 发帖数: 44466 | 130 微软最近在Win8的失败,一般要归功于C++教徒。
【在 b*******s 的大作中提到】 : totally crap,你怎么混进微软的
|
|
|
b*******s 发帖数: 5216 | 131 你们这些人,一讲到技术细节就露馅儿了,自己玩吧,和你们的讨论,屁都学不到
纯浪费时间
【在 x****u 的大作中提到】 : 微软最近在Win8的失败,一般要归功于C++教徒。
|
F****n 发帖数: 3271 | 132 I know some companies forbid using it because it is difficult to use without
trouble. It is based on ref count, and you need to correctly specify weak
reference to avoid circularity, which is a pain in the ass.
【在 x****u 的大作中提到】 : 现在C++标准和库里面有更多的垃圾。 : 比如说某些人歌颂的那个shared_ptr,就是将来不知道要坑多少人的东西。
|
g*****g 发帖数: 34805 | 133 你们对C++ bash得也太厉害了。任何一个平台,浏览器都是用native语言。
像Chrome这样还要跨平台的,C++是很自然的选择。 |
b*******s 发帖数: 5216 | 134 嗯,什么需求就用什么工具,只会一种的才会神化自己只会的那种
【在 g*****g 的大作中提到】 : 你们对C++ bash得也太厉害了。任何一个平台,浏览器都是用native语言。 : 像Chrome这样还要跨平台的,C++是很自然的选择。
|
x****u 发帖数: 44466 | 135 地球上所有主流OS都是基于C的,C++的问题就是它永远不native,没有一个可信赖的
framework。
【在 g*****g 的大作中提到】 : 你们对C++ bash得也太厉害了。任何一个平台,浏览器都是用native语言。 : 像Chrome这样还要跨平台的,C++是很自然的选择。
|
x****u 发帖数: 44466 | 136 批cpp的人比你熟的多,你太年轻距离产生美。
【在 b*******s 的大作中提到】 : 嗯,什么需求就用什么工具,只会一种的才会神化自己只会的那种
|
d****i 发帖数: 4809 | 137 还是好虫客观,顶一下!毕竟好虫十几年前就是C++大牛,哈哈。
【在 g*****g 的大作中提到】 : 你们对C++ bash得也太厉害了。任何一个平台,浏览器都是用native语言。 : 像Chrome这样还要跨平台的,C++是很自然的选择。
|
d****i 发帖数: 4809 | 138 什么叫"C++的问题就是它永远不native",C++不是和C一样生成机器码?
【在 x****u 的大作中提到】 : 地球上所有主流OS都是基于C的,C++的问题就是它永远不native,没有一个可信赖的 : framework。
|
x****u 发帖数: 44466 | 139 C++没有统一的framework,当必须要用几十个不同库时,你就写出了Windows。
【在 d****i 的大作中提到】 : 什么叫"C++的问题就是它永远不native",C++不是和C一样生成机器码?
|
g*****g 发帖数: 34805 | 140 对于C++来说,不同平台不需要100%代码可移植。能有70%-80%就可以大大减少工作量了。
浏览器本身就是个平台,竞争又激烈,网页速度快慢对用户体验影响很大。所以用C++
来实现再正常不过了。
换个不面对终端客户的东西,比如Oracle admin console这样的,自然可以用Java写。
【在 x****u 的大作中提到】 : C++没有统一的framework,当必须要用几十个不同库时,你就写出了Windows。
|
|
|
x****u 发帖数: 44466 | 141 C++的致命缺点是每个编译器都自带runtime,这样一个软件如果有30个模块,可能会引
入20几个静态或者动态的runtime,这个极为消耗内存并且降低速度。
鼓励发明轮子的语言不是好语言啊。
了。
【在 g*****g 的大作中提到】 : 对于C++来说,不同平台不需要100%代码可移植。能有70%-80%就可以大大减少工作量了。 : 浏览器本身就是个平台,竞争又激烈,网页速度快慢对用户体验影响很大。所以用C++ : 来实现再正常不过了。 : 换个不面对终端客户的东西,比如Oracle admin console这样的,自然可以用Java写。
|
b*******s 发帖数: 5216 | 142 随便问问c有统一的framework吗?
【在 x****u 的大作中提到】 : C++没有统一的framework,当必须要用几十个不同库时,你就写出了Windows。
|
x****u 发帖数: 44466 | 143 因为OS就是基于C的,所以OS的API就是C的framework。
【在 b*******s 的大作中提到】 : 随便问问c有统一的framework吗?
|
b*******s 发帖数: 5216 | 144 果然是微软的政治家
【在 x****u 的大作中提到】 : 因为OS就是基于C的,所以OS的API就是C的framework。
|