Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Libgdx无头应用程序上的Mockito内存泄漏_Libgdx_Mockito_Headless - Fatal编程技术网

Libgdx无头应用程序上的Mockito内存泄漏

Libgdx无头应用程序上的Mockito内存泄漏,libgdx,mockito,headless,Libgdx,Mockito,Headless,我一直在为客户端和服务器开发一个使用libgdx的多人游戏。为了使服务器无头运行,我必须使用mockito模拟OpenGL上下文,如图所示: Gdx.gl = Mockito.mock(GL20.class, Mockito.withSettings().stubOnly()); new HeadlessApplication(new MainServer(true), config); 但我注意到,5~6小时后,服务器崩溃,出现以下消息: Exception: java.lang.OutOf

我一直在为客户端和服务器开发一个使用libgdx的多人游戏。为了使服务器无头运行,我必须使用mockito模拟OpenGL上下文,如图所示:

Gdx.gl = Mockito.mock(GL20.class, Mockito.withSettings().stubOnly());
new HeadlessApplication(new MainServer(true), config);
但我注意到,5~6小时后,服务器崩溃,出现以下消息:

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "HeadlessApplication"Exception in thread "Server"
由于它似乎是内存泄漏,我立即启动了EclipseMat(内存分析工具),结果非常直接:
我在谷歌上搜索了“Mockito内存泄漏”,发现我可以像上面那样尝试使用
Mockito.withSettings().stubOnly()
选项,但我仍然遇到了这个问题。事实上,链接的屏幕截图已经设置好了这个选项。
我想知道是否有人能向我解释这个问题,是否有办法解决它?

我终于设法避免使用Mockito。因为我只需要模拟Gdx.gl,而不是出于测试目的,所以我只创建了一个名为FakeGL20的虚拟类,它实现了GL20接口,而不做任何事情。
然后我将这个新类分配给Gdx.gl:
Gdx.gl=new FakeGl20()
更改后,我没有任何内存泄漏问题。
希望有一天这能帮助别人