线上使用的实际效果:
1
metrxqin 2018 年 6 月 21 日
你确定真的有必要?
|
2
neoblackcap 2018 年 6 月 21 日
其实我觉得你们需要换 GC 算法,毕竟 G1 的回收已经很快了,听说下一代也要学 Azual,搞 pauseless gc,垃圾回收可以在 heap 上 T 的时候低至 10ms,不需要人工接入。
|
3
ShineSmile 2018 年 6 月 21 日
面试的时候面试官说 java 的 GC 是引用计数
是真的么? 那遇到循环引用可咋办。 |
4
dbpe 2018 年 6 月 21 日
|
5
ren2881971 2018 年 6 月 21 日
从没主动回收过。。
|
6
yanaraika 2018 年 6 月 21 日 via Android
现在一堆公司问 /搞 JVM 调优就不会花 3500 刀买个 Azul Zing JVM? 况且很多时候面试官和被面试者的理解都是错的
总之不到万不得已不要搞跨层优化,底层一变就成了负优化 |
10
micean 2018 年 6 月 21 日
自己塞满内存去触发 GC 完全没有必要吧
|
11
copie 2018 年 6 月 21 日 via Android
@ShineSmile Python 使用的是引用计数。处理循环引用使用标记-清除。为了加速使用了分代回收。虽然简单但是有效。
|
12
DRcoding 2018 年 6 月 21 日 Start 还挺多的,不过反正我是不敢在线上用这玩意。。。。
|
13
ShineSmile 2018 年 6 月 21 日
|
14
seancheer 2018 年 6 月 21 日
|
15
Raymon111111 2018 年 6 月 21 日
这个思路当然有用
我们业务高峰发生 GC 就是一大堆超时, 一般会在低峰期定时去 GC 躲开高峰期的 GC 行为 |
16
rim99 2018 年 6 月 22 日 via iPhone
先码一下。
cms 不是本来就要指定 old gen 百分比来触发 gc 么? |
17
CYKun 2018 年 6 月 22 日 via Android
挑个刺:阀值→阈值
|
18
balamiao 2018 年 6 月 22 日
|
19
ShineSmile 2018 年 6 月 22 日
@seancheer 能举个例子么?
|
20
ShineSmile 2018 年 6 月 22 日
@seancheer 算了 大家各自自以为是吧
不是研究 PL 的 也不想撕 |
23
lxbjkben OP @neoblackcap G1 只有大堆会减少超长 GC,小堆没区别。
|
24
lxbjkben OP |
25
ShineSmile 2018 年 6 月 27 日
@dbpe 哈哈哈
刚在 V2EX 看到那个公司的软文 2333333333 |
26
seancheer 2018 年 7 月 3 日
@ShineSmile 不好意思,才看到。举个 c 里面的例子
``c struct S_YourStruct{ int age; } typedef struct S_YourStruct YourStruct; void main() { YourStruct* p = (YourStruct*)malloc(sizeof(YourStruct )); //不判断有没有申请成功了 memset(p,0,sizeof(YourStruct)); p->age = 11; func(p); } void func(YourStruct * p) { p->age = 100; //这里修改也会在 main 中的 p 生效,因为指针都指向同一个对象 p = (YourStruct*)malloc(sizeof(YourStruct )); //修改了 p 指针的指向,但是 main 中的 p 没有受到影响,对于指针本身来讲,实际上是 [值传递] ,而并非 [引用传递] ,Java 里面也是同样的道理,本质上都是 [值传递] ,Java 同样的操作和这里的结果是一样的。 } `` |