LWJGL3的内存管理,简介及目录
2024-09-04 19:38:23
LWJGL3的内存管理,简介及目录
LWJGL3 (Lightweight Java Game Library 3),是一个支持OpenGL,OpenAl,Opengl ES,Vulkan等的Java绑定库。《Minecraft》便是基于LWJGL的作品。Java1.4发布于2002年初,而 LWJGL 创建于几个月之后。这并非巧合,而是随着Java1.4发布的NIO库,终于使得直接而高效地操作堆外内存成为了可能。不需要使用堆内缓冲区就能从堆外内存读写数据,减少了数据拷贝带来的性能消耗。
LWJGL3 作为一个底层图形库,天然要追求高性能。为此提供了三种内存分配策略,性能从高到低分别为:
- 基于 MemoryStack 的栈上分配方式
- 基于 JNI 调用 jemalloc 等第三方库的内存分配技术
- JDK 提供的 ByteBuffer.allocateDirect
要想基于 LWJGL3 构建自己的应用,则只有在了解了这三种分配策略之后,才能运用自如不会感到困惑。LWJGL3这种库的实现需要考虑的问题相当底层,此外实现背后的设计本身也具有很高的参考价值,项目的作者spasi持续开发和维护了该项目接近二十年,其编码和设计水平值得深入学习。
LWJGL项目地址:https://github.com/LWJGL/lwjgl3
LWJGL官方网站:https://www.lwjgl.org
为了讨论LWJGL在内存分配方面的设计,我将会使用数篇随笔分开介绍,本篇将主要介绍一些大方向的问题和一些必备的知识。
最新文章
- 如何从零基础学习VR
- Vue.js双向绑定的实现原理
- dos2unix unix2dos
- 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器
- suse 不能远程登录
- DataSet读取XML
- Cocos2d-x中使用OpenGL ES2.0编写shader
- form作为module name 悲剧了
- Linux-NFS原理介绍
- 5个基于css3超炫的鼠标滑动按钮动画
- C#多线程(二)
- easyui中datagrid标题居中内容居左实现方式
- linux 单网卡绑定两个ip
- React 实践项目 (五)
- 1.C和C++区别,以及const分析
- LVS负载均衡DR模式实现
- 利用ApplicationContextAware装配Bean
- 5-23 CSS知识的补充
- HDU5511 : Minimum Cut-Cut
- Android之官方导航栏ActionBar
热门文章
- Emgu.CV怎么加载Bitmap
- 记一次ElementUI源码修改过程
- 012 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 06 浮点型“字面值”
- 01 百度 AI Studio 基础操作记录(一) Notebook
- C++派生类与基类的关系
- P4568 [JLOI2011]飞行路线 / P2939 [USACO09FEB]Revamping Trails G
- day05 Pyhton学习
- 10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践
- PHP获取当前毫秒级别时间戳
- 单元测试之道Java版——读书笔记