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在内存分配方面的设计,我将会使用数篇随笔分开介绍,本篇将主要介绍一些大方向的问题和一些必备的知识。

最新文章

  1. 如何从零基础学习VR
  2. Vue.js双向绑定的实现原理
  3. dos2unix unix2dos
  4. 用svnsync 同步备份 svn 版本库 从一台服务器到另一台服务器
  5. suse 不能远程登录
  6. DataSet读取XML
  7. Cocos2d-x中使用OpenGL ES2.0编写shader
  8. form作为module name 悲剧了
  9. Linux-NFS原理介绍
  10. 5个基于css3超炫的鼠标滑动按钮动画
  11. C#多线程(二)
  12. easyui中datagrid标题居中内容居左实现方式
  13. linux 单网卡绑定两个ip
  14. React 实践项目 (五)
  15. 1.C和C++区别,以及const分析
  16. LVS负载均衡DR模式实现
  17. 利用ApplicationContextAware装配Bean
  18. 5-23 CSS知识的补充
  19. HDU5511 : Minimum Cut-Cut
  20. Android之官方导航栏ActionBar

热门文章

  1. Emgu.CV怎么加载Bitmap
  2. 记一次ElementUI源码修改过程
  3. 012 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 06 浮点型“字面值”
  4. 01 百度 AI Studio 基础操作记录(一) Notebook
  5. C++派生类与基类的关系
  6. P4568 [JLOI2011]飞行路线 / P2939 [USACO09FEB]Revamping Trails G
  7. day05 Pyhton学习
  8. 10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践
  9. PHP获取当前毫秒级别时间戳
  10. 单元测试之道Java版——读书笔记