1.DM游戏程序进程Windows环境初始后3.7兆,考虑到使用了众多底层的初始化,且libavcodec.dll体积较大,正常.
2.启动OpenGL环境后激增到10.9兆,消耗7M内存,比较大,尚能接受.
ChoosePixelFormat: 耗费1.1M
wglCreateContext: 耗费0.5M
wglMakeCurrent: 耗费5.3M
3.lua脚本环境,脚本执行后消耗不到500K,cool!
4.载入一般格式纹理消耗68M内存,达到78.5M内存消耗,不能容忍,必须使用压缩格式.
a.对支持GL_ARB_texture_compression的显卡采用纹理压缩,启动时间变得稍微延长,尚能接受.
消耗内存骤减至17M,达到28M内存消耗.
b.glTexSubImage作用于压缩纹理时,对子块纹理的大小也有强制要求,虽然不需要2的n次方,但需要是4的整数倍,否则在不支持NPOT显卡上会失败,INVALID_OPERATION.后来测试发现,各种显卡的这个能力都很不稳定,甚至导致程序崩溃,另外纹理载入时间较长,所以使用预压缩的纹理是最终的解决方案.
5.载入一个大小的字体消耗4M内存,到82.6,再载入一个大小字体又4M内存,达86.7M,不能容忍.FTGL的实现对中文支持的纹理内存消耗上有重大设计问题.
a.修改FTGL对中文支持中的错误,把中文当英文处理,结果分配了4096*1024的大纹理,浪费啊,改为512*512,消耗骤减至256k.
6.音效系统和声音文件消耗4M内存,尚可.
a.需要优化
7.最终程序30M内存消耗.