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