JVM 中的手动垃圾收集器
Manual Garbage Collector in JVM
我正在做一个与 JVM GC 相关的项目,我打算用我的手动 GC 替换 JVM 自动 GC。
我知道 JAVA 有一个自动垃圾收集器。如果我们集成一个新的手动垃圾收集器,开发人员需要在对象上显式调用 new 和 delete(就像在 C++ 中一样)会怎么样。
让我们假设程序员在没有内存泄漏的情况下编写 free。
使用手动垃圾收集器而不是自动垃圾收集器会更有效吗?。
工业界普遍使用手动GC吗?还是程序员到处使用自动垃圾收集器?
我认为您的项目过于雄心勃勃。例如,用分配/释放内存管理替换现有的 JVM GC 框架可能需要大量重写 JVM 本机代码代码库和重新设计 Java class 库。
(您知道 Java 11 OpenJDK 源代码库的签出是 2.5 GB 吗?那里有很多代码。跳之前先看看。)
您问过:
Would it be efficient to use manual garbage collector instead of automatic garbage collection?
在我看来,否:
正如很久以前证明的那样(参见 classic Zorn 论文),对于大型应用程序,自动 GC 与使用 malloc/free 和智能指针。
整个Javaclass库都是在GC自动高效的假设下设计的。如果你改变它,那么当前的很多 API 设计都是有问题的;即它会泄漏堆对象。
但是,如果您将 10 左右 man-years 熟练的开发人员投入到项目中,您最终可能会得到不同的答案。 (而且可能是一种非常不同的编程语言!)
Is it common to use manual GC in industry?
Java 闻所未闻。
在 C/C++ 等未考虑自动 GC 编写的语言中,使用手动存储管理仍然很常见。 (但不是通用的。阅读有关 Boehm conservative collector 的内容。)
Or do programmers use automatic garbage collector everywhere?
与Java,是的。
在许多其他编程语言中是的。但不是所有语言。
参考:
- "The measured cost of conservative garbage collection" 作者:Benjamin G. Zorn,发表于 Softw., Pract.专家。 1993. DOI: 10.1002/spe.4380230704
我正在做一个与 JVM GC 相关的项目,我打算用我的手动 GC 替换 JVM 自动 GC。
我知道 JAVA 有一个自动垃圾收集器。如果我们集成一个新的手动垃圾收集器,开发人员需要在对象上显式调用 new 和 delete(就像在 C++ 中一样)会怎么样。
让我们假设程序员在没有内存泄漏的情况下编写 free。
使用手动垃圾收集器而不是自动垃圾收集器会更有效吗?。
工业界普遍使用手动GC吗?还是程序员到处使用自动垃圾收集器?
我认为您的项目过于雄心勃勃。例如,用分配/释放内存管理替换现有的 JVM GC 框架可能需要大量重写 JVM 本机代码代码库和重新设计 Java class 库。
(您知道 Java 11 OpenJDK 源代码库的签出是 2.5 GB 吗?那里有很多代码。跳之前先看看。)
您问过:
Would it be efficient to use manual garbage collector instead of automatic garbage collection?
在我看来,否:
正如很久以前证明的那样(参见 classic Zorn 论文),对于大型应用程序,自动 GC 与使用 malloc/free 和智能指针。
整个Javaclass库都是在GC自动高效的假设下设计的。如果你改变它,那么当前的很多 API 设计都是有问题的;即它会泄漏堆对象。
但是,如果您将 10 左右 man-years 熟练的开发人员投入到项目中,您最终可能会得到不同的答案。 (而且可能是一种非常不同的编程语言!)
Is it common to use manual GC in industry?
Java 闻所未闻。
在 C/C++ 等未考虑自动 GC 编写的语言中,使用手动存储管理仍然很常见。 (但不是通用的。阅读有关 Boehm conservative collector 的内容。)
Or do programmers use automatic garbage collector everywhere?
与Java,是的。
在许多其他编程语言中是的。但不是所有语言。
参考:
- "The measured cost of conservative garbage collection" 作者:Benjamin G. Zorn,发表于 Softw., Pract.专家。 1993. DOI: 10.1002/spe.4380230704