LWJGL3的内存管理,简介及目录

Posted heben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LWJGL3的内存管理,简介及目录相关的知识,希望对你有一定的参考价值。

LWJGL3的内存管理

LWJGL3 (Lightweight Java Game Library 3),是一个支持OpenGL,OpenAl,Opengl ES,Vulkan等的Java绑定库。《Minecraft》便是基于LWJGL的作品。Java1.4发布于2002年初,而 LWJGL 创建于几个月之后。这并非巧合,而是随着Java1.4发布的NIO库,终于使得直接而高效地操作堆外内存成为了可能。不需要使用堆内缓冲区就能从堆外内存读写数据,减少了数据拷贝带来的性能消耗。

LWJGL3 作为一个底层图形库,天然要追求高性能。为此提供了三种内存分配策略,性能从高到低分别为:

  1. 基于 MemoryStack 的栈上分配方式
  2. 基于 JNI 调用 jemalloc 等第三方库的内存分配技术
  3. JDK 提供的 ByteBuffer.allocateDirect

要想基于 LWJGL3 构建自己的应用,则只有在了解了这三种分配策略之后,才能运用自如不会感到困惑。LWJGL3这种库的实现需要考虑的问题相当底层,此外实现背后的设计本身也具有很高的参考价值,项目的作者spasi持续开发和维护了该项目接近二十年,其编码和设计水平值得深入学习。

LWJGL项目地址:https://github.com/LWJGL/lwjgl3
LWJGL官方网站:https://www.lwjgl.org

为了讨论LWJGL在内存分配方面的设计,我将会使用数篇随笔分开介绍,目录如下

LWJGL3的内存管理,第一篇,基础知识

LWJGL3的内存管理,第二篇,栈上分配

LWJGL3的内存管理,第三篇,剩下的两种策略

LWJGL3的内存管理,第四篇,DEBUG工具(编写中)

LWJGL3的内存管理,第五篇,Project Panama(编写中)


以上是关于LWJGL3的内存管理,简介及目录的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存管理子系统(概念入门)

Linux内存管理子系统(概念入门)

Linux 内核 内存管理物理内存组织结构 ⑥ ( 物理页 page 简介 | 物理页 page 与 MMU 内存管理单元 | 内存节点 pglist_data 与 物理页 page 联系 )

有关C语言内存管理的一些总结

Java虚拟机内存结构及编码实战

C语言☀️动态内存管理及相关函数