glfw内存泄露测试

1. glfwInit()   和  glfwTerminate()  放在主线程 

   循环次数 1    内存   14M

  循环次数100    46M

  循环次数1000   49M

2.  glfwInit()   和  glfwTerminate()    放在线程里   globalInit   and globalRelease    

   循环次数 1    内存   13M

  循环次数100    87M

  循环次数1000   426M

3.  glfwInit()   和  glfwTerminate()    放在线程里   但是只初始化一次  说明在openDLL的情况下不能只初始化一次!!!

   循环次数 1    内存  

  循环次数100   

  循环次数1000  

4.  glfwInit()   和  glfwTerminate()    放在线程里   每次都初始化, createWindow打开

   循环次数 1    内存  14M

  循环次数100    内存 89M

  循环次数1000   内存458M

5. 在上一步的基础上 把run打开

   循环次数 1    内存  14M

  循环次数100    内存 62M

  循环次数1000   内存453M

6.   在上一步基础上   global  只初始化一次   注释 closeDll

   循环次数 1   87 M

  循环次数 2 崩溃  说明closeDll 后  数据都被破坏了  error:0X10001 : The GLFW library is not initialized

7.  在上一步基础上   global  初始化写在线程里, 且每次都初始化  不使用closeDll

   循环次数 1    内存  17M

  循环次数100    内存 65M

  循环次数1000   内存436M

8.  在上一步基础上  global 写在外部   使用closeDll      ------>   建议使用

   循环次数 1    内存  15M

  循环次数100    内存 54M

  循环次数1000   内存 55M

9  transcoder 调用 so @8  

   循环次数 1    内存  119M

  循环次数  2    内存 382M

  循环次数  3   内存 528M

10 20 上   ./one 10000   内存210M

11   不调用shader 、 texture ,   运行7次, 20 上内存最大到110M

12  pthread   100 次   线程设置为detached   ./test    490M  

13  std::thread   100 次   线程设置为detached   ./test    244M 

14 pthread   100 次   线程设置为join ./test    80M  

15  thread   100 次   线程设置为join ./test    111M  

16 pthread   100 次   线程设置为join ./test  每次liboper 100次   80M  

16 pthread   100 次   线程设置为detach   ./test  每次liboper 100次   2.99G  

17   if(frame_count==0){

}return ;   有泄漏

18 

17   if(frame_count==0){

//glx   注释glx

}return ;   没泄漏    第二次迭代内存升到496M   随后就恢复正常    110M

19   

原版   

7-8 次迭代后就内存不增加了  1.1G 左右

20 tranc_off    如果创建窗口  每次增加780M    用1080p测试  

  如果不创建窗口一直是110M不增加

原文地址:https://www.cnblogs.com/luoyinjie/p/11715596.html