如果我知道我分配了哪些内存以及何时需要释放它。我可以在 Java 中禁用垃圾收集吗?
我只想让我的应用程序的内存要求<1mb。
我认为必须有一个选项来禁用创建垃圾然后收集它。我根本不想留下垃圾。
此外,垃圾收集仍然会留下泄漏,因此在常规 C 程序中查找泄漏是乏味的,Java GC 也是如此。
让我自己处理我的垃圾..
如果我知道我分配了哪些内存以及何时需要释放它。我可以在 Java 中禁用垃圾收集吗?
我只想让我的应用程序的内存要求<1mb。
我认为必须有一个选项来禁用创建垃圾然后收集它。我根本不想留下垃圾。
此外,垃圾收集仍然会留下泄漏,因此在常规 C 程序中查找泄漏是乏味的,Java GC 也是如此。
让我自己处理我的垃圾..
如果我知道我分配了哪些内存以及何时需要释放它。我可以在 Java 中禁用垃圾收集吗?
垃圾仅在内存不足时触发(并发收集器除外) 如果您不创建太多垃圾并且永远不会耗尽内存,则不需要 GC 并且它不会运行。
我不知道为什么要为应用程序执行此操作。这种技术用于高频交易,以最小化或避免 GC,但我没有看到应用程序的意义。
我只想让我的应用程序的内存要求<1mb。
这很难做到,因为环境会使用这么多来运行一个 hello world 程序。您的应用程序可以添加这么多。
我认为必须有一个选项来禁用创建垃圾然后收集它。我根本不想留下垃圾。
如果您不想保留垃圾,那么您需要一个垃圾收集器。如果您自己进行回收,则不需要 GC。
此外,垃圾收集仍然会留下泄漏,因此在常规 C 程序中查找泄漏是乏味的,Java GC 也是如此。
GC 不会像 C 程序那样泄漏,内存总是可以回收的。在 Java 中,“内存泄漏”只是意味着内存使用量的任何不希望的增加。
让我自己处理我的垃圾..
没有人阻止你。
没有垃圾收集器不在您的控制范围内。
dalvik VM 的工作是释放内存。
你可以检查这个链接
http://developer.android.com/training/articles/perf-tips.html
检查避免创建不必要的对象下的主题。
此外,您应该以不会遇到内存泄漏的方式进行编码。
即使可以禁用 gc,您为什么要这样做?(我不知道,我认为不可能禁用 GC)。GC 将释放内存,如果禁用它,垃圾收集将如何进行。
你可以做的最接近析构函数的事情:
myObject = null;
System.gc();
但这是不可取的。
我会更担心一些 Java 类有一个本地对等点,GC 对此一无所知。例如,Bitmap.recycle()
当您不再需要位图时,您应该始终调用