【发布时间】:2019-08-04 15:44:26
【问题描述】:
我目前正在从事一个涉及 LWJGL 的项目。我知道在 C 和 C++ 中应该调用如下函数:glDeleteBuffers、glDeleteVertexArrays 等来释放内存。但是,Java 有一个垃圾收集器,这通常意味着当 JVM 关闭时所有内存都会被释放。
使用Java时需要调用glDelete*吗?
也许我应该只为不再需要的对象调用这些函数来提高性能。
【问题讨论】:
-
当 JVM/进程停止时,不是 GC 会处理资源。它是操作系统的进程管理器。
-
这是有道理的。因此,当 JVM 进程停止时,操作系统会自动释放 GPU 上的内存。因此不需要在进程结束时手动释放内存?
-
操作系统卸载驱动程序共享库,这些库中的挂钩通知驱动程序此卸载,驱动程序将处理进程持有的任何资源。是的。因此,您也不必在 C/C++ 程序中处理任何 GL 资源。
标签: java performance opengl memory lwjgl