+
 新版
2017-03-24 13:53

引用来自“游客”的评论

感觉作者是对所谓的GOGC大概也不是很清楚,所以,对大家提了一个问题GOGC到底好不好?我个人觉得每一门语言做出来都是为了解决某些问题,C也好,C++也好,Java,包括现在的GO ,都是为了解决现实中某些问题而产生的;所以,使用什么语言开发要看当时工作的场景,别告诉我写一个简单的静态网页,就用Java\C去实现……虽然可行,但是,并不明智。——所以,这种争论总感觉没意义。

引用来自“bin9e”的评论

如果一定要说的话,最强的GC回收机制是C语言,嗯,应该是汇编吧,而不是其他语言。寄存器就那么10几个,用的时候,还得悠着点………O(∩_∩)O

引用来自“摩西”的评论

你都没搞清楚什么是GC。 C语言哪来的GC?😂

引用来自“chexEMet”的评论

free
那你这还是手动销毁啊~ GC是自动的
2017-03-24 13:52
没有银弹~ 只有适合的GC,没有完美的GC。
2017-03-21 14:57

引用来自“游客”的评论

感觉作者是对所谓的GOGC大概也不是很清楚,所以,对大家提了一个问题GOGC到底好不好?我个人觉得每一门语言做出来都是为了解决某些问题,C也好,C++也好,Java,包括现在的GO ,都是为了解决现实中某些问题而产生的;所以,使用什么语言开发要看当时工作的场景,别告诉我写一个简单的静态网页,就用Java\C去实现……虽然可行,但是,并不明智。——所以,这种争论总感觉没意义。

引用来自“bin9e”的评论

如果一定要说的话,最强的GC回收机制是C语言,嗯,应该是汇编吧,而不是其他语言。寄存器就那么10几个,用的时候,还得悠着点………O(∩_∩)O

引用来自“摩西”的评论

你都没搞清楚什么是GC。 C语言哪来的GC?😂
free
2017-03-14 21:46

引用来自“游客”的评论

感觉作者是对所谓的GOGC大概也不是很清楚,所以,对大家提了一个问题GOGC到底好不好?我个人觉得每一门语言做出来都是为了解决某些问题,C也好,C++也好,Java,包括现在的GO ,都是为了解决现实中某些问题而产生的;所以,使用什么语言开发要看当时工作的场景,别告诉我写一个简单的静态网页,就用Java\C去实现……虽然可行,但是,并不明智。——所以,这种争论总感觉没意义。

引用来自“bin9e”的评论

如果一定要说的话,最强的GC回收机制是C语言,嗯,应该是汇编吧,而不是其他语言。寄存器就那么10几个,用的时候,还得悠着点………O(∩_∩)O
你都没搞清楚什么是GC。 C语言哪来的GC?😂
2017-02-12 19:57

引用来自“银杏林守望者”的评论

java很令人诟病的一点就是完全没法手动free,明明程序知道某一个巨大的空间比如(byte[])已经用完了,也没法手动free。
只能把这个空间的操作放在尽可能小的方法里面让gc干活。要是能让开发者哪怕是标记某一个对象可以free了也好。
这点c#就好得多。

引用来自“天下灯火”的评论

我觉得这没什么好诟病的。你可以尽量清空,并且指定为null,虽说虚拟机不是马上回收,但是你内存也并不会损失很大。。最主要很多场景下,不需要普通

引用来自“nothingkill”的评论

@天下灯火 这个问题在桌面和服务器影响不大,但是在移动平台上可能会遇到严重的问题,比如j2me和Android,突然分配大块内存直接导致oom被系统杀死,而之前虚拟机认为内存足够不进行回收,现在很多Android程序压力测试的时候都能测出来
这也与安卓产品的虚拟机有关,本身垃圾的回收的参数就有很多,可以不断地调整以适应各种需求,但是jvm和安卓VM完全不同。这其实没法完全认为是垃圾回收机制的问题,与虚拟机优化和设计方式有一定关系
2017-01-28 17:18

引用来自“银杏林守望者”的评论

java很令人诟病的一点就是完全没法手动free,明明程序知道某一个巨大的空间比如(byte[])已经用完了,也没法手动free。
只能把这个空间的操作放在尽可能小的方法里面让gc干活。要是能让开发者哪怕是标记某一个对象可以free了也好。
这点c#就好得多。

引用来自“天下灯火”的评论

我觉得这没什么好诟病的。你可以尽量清空,并且指定为null,虽说虚拟机不是马上回收,但是你内存也并不会损失很大。。最主要很多场景下,不需要普通
@天下灯火 这个问题在桌面和服务器影响不大,但是在移动平台上可能会遇到严重的问题,比如j2me和Android,突然分配大块内存直接导致oom被系统杀死,而之前虚拟机认为内存足够不进行回收,现在很多Android程序压力测试的时候都能测出来
2017-01-22 15:54

引用来自“游客”的评论

感觉作者是对所谓的GOGC大概也不是很清楚,所以,对大家提了一个问题GOGC到底好不好?我个人觉得每一门语言做出来都是为了解决某些问题,C也好,C++也好,Java,包括现在的GO ,都是为了解决现实中某些问题而产生的;所以,使用什么语言开发要看当时工作的场景,别告诉我写一个简单的静态网页,就用Java\C去实现……虽然可行,但是,并不明智。——所以,这种争论总感觉没意义。
如果一定要说的话,最强的GC回收机制是C语言,嗯,应该是汇编吧,而不是其他语言。寄存器就那么10几个,用的时候,还得悠着点………O(∩_∩)O
2017-01-19 19:35

引用来自“一生做恶”的评论

无论怎么说,go一定火,学完go基本知识,就超喜欢

引用来自“若然”的评论

介绍个教程呗
有两本pdf,一个是基础的,一个web ,你搜一下,beego框架可以看看,然后我就看docker 了
2017-01-19 18:40

引用来自“eechen”的评论

GC选项操作者就业草案?真的挺讽刺的,典型的解决了旧问题又引入了新问题.
对于高并发实时类应用,GC从来不是优势,而是一个劣势.
GC:先让程序内存"泄露",然后我来负责回收.

Go团队正在发掘一种他们称之为"面向请求的回收器"的东西?
对于像HTTP服务器那种处理请求和响应的程序, 以请求为单位释放内存是最简单和稳定的, PHP每次请求释放资源的FastCGI运行模式就是这种思路. 对于PHP-FPM和Apache MOD_PHP来说,服务进程常驻内存,但一次请求释放一次资源,这种内存释放非常彻底. PHP基于引用计数的GC甚至都还没发挥作用程序就已经结束了. 而且,在PHP脚本中用unset显式释放内存也是立竿见影的,不会有延时. 因为内存得到彻底释放,所以PHP-FPM这类程序基本不会出现内存泄露和膨胀以及GC雪崩的问题.
php请求一次就释放一次资源,java是延后释放,请问php有什么优势?java延后释放,马上返回,才会减少延时,php请求一次就释放一次,不会有延时?哪个延时大?
2017-01-19 17:19

引用来自“小果汁儿”的评论

不要GC又有何妨,写程序主要还是看人。有了GC就一定能避免内存泄露吗?依我看有GC的语言更容易内存泄露。尤其是基本功差的,会误导你不考虑这方面,从而导致写的程序更加垃圾。
代价代价,任何技术选择都是妥协和权衡的结果,只要付出一定的GC代价,带来的是更少的内存泄露和更快的开发速度以及更低的开发成本。代价比收益小,就适合采用。
2017-01-19 15:48
GC选项操作者就业草案?真的挺讽刺的,典型的解决了旧问题又引入了新问题.
对于高并发实时类应用,GC从来不是优势,而是一个劣势.
GC:先让程序内存"泄露",然后我来负责回收.

Go团队正在发掘一种他们称之为"面向请求的回收器"的东西?
对于像HTTP服务器那种处理请求和响应的程序, 以请求为单位释放内存是最简单和稳定的, PHP每次请求释放资源的FastCGI运行模式就是这种思路. 对于PHP-FPM和Apache MOD_PHP来说,服务进程常驻内存,但一次请求释放一次资源,这种内存释放非常彻底. PHP基于引用计数的GC甚至都还没发挥作用程序就已经结束了. 而且,在PHP脚本中用unset显式释放内存也是立竿见影的,不会有延时. 因为内存得到彻底释放,所以PHP-FPM这类程序基本不会出现内存泄露和膨胀以及GC雪崩的问题.
2017-01-19 15:36
不要GC又有何妨,写程序主要还是看人。有了GC就一定能避免内存泄露吗?依我看有GC的语言更容易内存泄露。尤其是基本功差的,会误导你不考虑这方面,从而导致写的程序更加垃圾。
2017-01-19 14:09
当年的王垠呢?哗众取宠罢了,这么比较GC也没啥意义,go照样能开发出杰出的软件作品
2017-01-19 11:53
lua增量的标记清除法,只要从业务上保证清除速度大于产生垃圾的速度就可以,停顿比较小
2017-01-19 11:19

引用来自“0day”的评论

一脸懵逼的出去,讲了半天不知道比JAVA到底好还是不好!
> 这篇文章的目的并不在于说服你使用某种语言或工具。只是希望你能意识到,垃圾回收是一个很复杂的问题,而且相当复杂,一大堆计算机科学家已经为此研究了数十年。如果有任何所谓的突破性进展,一定要谨慎看待。它们可能看起来很奇怪,或者更像是对折衷的伪装,到最后只会暴露无遗。

简单来说就是一篇GC算法的科普文,告诉你没有完美的GC算法,大多数情况下没有绝对的好、不好,以及Go的新版算法是牺牲其他方面来最小化的停顿时间的。
至于好不好要看你的负载类别来判断
2017-01-19 11:06
我的印象中:java是分代回收,php是引用计数。go的还没印象,不过从文章中理解是标记回收,不过这又给了我在go上面的新的方向。

就像文中所说一般情况系,会有多种回收机制,只是默认情况下不同。
2017-01-19 10:51
无视...
2017-01-19 10:50

引用来自“职通网”的评论

rust的思路是正确的。
基于GC 是个坑,沾上就不好脱身、、参见D、、nogc好多个版本了都没有开辟出来成熟的nogc环境。
2017-01-19 10:29

引用来自“xdeng”的评论

没有数据支撑的文章我也会写。
就是啊,即没有benchmark也没有源码分析,对自己举的例子也不提供链接,感觉就像是在YY或者看了某大牛的发言然后跟风
2017-01-19 09:51

引用来自“银杏林守望者”的评论

java很令人诟病的一点就是完全没法手动free,明明程序知道某一个巨大的空间比如(byte[])已经用完了,也没法手动free。
只能把这个空间的操作放在尽可能小的方法里面让gc干活。要是能让开发者哪怕是标记某一个对象可以free了也好。
这点c#就好得多。
我觉得这没什么好诟病的。你可以尽量清空,并且指定为null,虽说虚拟机不是马上回收,但是你内存也并不会损失很大。。最主要很多场景下,不需要普通
2017-01-19 09:43
作者写了篇干货来概述两种GC的机制差异,结果交由你们自己判断。某些人却只想看benchmark,无语的一逼
2017-01-19 09:41
有毛线用啊 看看人家PHP 什么时候关心过垃圾回收的问题?
2017-01-19 09:41
rust的思路是正确的。
2017-01-19 09:38

引用来自“becke”的评论

无论怎么说 学完go的基础知识后 就不再想碰这门语言了
有什么让你不舒服的地方?
2017-01-19 09:27
现在是虚拟化,容器化的时代了。。。主要是你虚拟机里面再跑个虚拟机不是。。。那啥么。。。?
2017-01-19 09:23
无论怎么说 学完go的基础知识后 就不再想碰这门语言了
2017-01-19 09:21
没有数据支撑的文章我也会写。
2017-01-19 09:00
java很令人诟病的一点就是完全没法手动free,明明程序知道某一个巨大的空间比如(byte[])已经用完了,也没法手动free。
只能把这个空间的操作放在尽可能小的方法里面让gc干活。要是能让开发者哪怕是标记某一个对象可以free了也好。
这点c#就好得多。
2017-01-19 09:00

引用来自“一生做恶”的评论

无论怎么说,go一定火,学完go基本知识,就超喜欢
介绍个教程呗
2017-01-19 08:36
说了半天的理论、可能,就是没有来个实际对比……
2017-01-19 08:22
无论怎么说,go一定火,学完go基本知识,就超喜欢
2017-01-19 08:17
一脸懵逼的出去,讲了半天不知道比JAVA到底好还是不好!
2017-01-19 08:16
GO加油~
回复 @
{{emojiItem.symbol}}
返回顶部
顶部