为什么空的libgdx应用程序的公羊使用稳步攀登



gurus

我是libgdx的新手(以及Java的编程(,并且对LibGDX应用程序的Ram-usage有一个疑问,我找不到在线的答案。几天前,当我从目前读到的《 Java游戏开发》(Java Game Development with Libgdx(中定制了一个示例时,我注意到该游戏的公羊使用时,当一个人独自一人左右左右。我的Linux Resource-Monitor始于〜120MB,到我关闭时最高可达1300MB。我已经在这件事上与作者联系,因为我借着他的书《线条》,但仍然得到了这种行为!

除了他的示例中可能的泄漏外,我决定使用最新的GDX-setup.jar(v。1.9.9(进行更深入的挖掘,并创建一个空的libgdx-app,并决定让它运行一段时间。我使用Ryzen 2700X,32GB RAM和Linux Mint 19.1在工作站上对此进行了测试。有趣的是,空的应用显示出一个相似的应用程序,但并没有那么剧烈的行为,而Ram-usage随着时间的推移持续攀升至50MB,到我关闭时,甚至没有一个下降!我在线阅读,资源监护人实际上并未显示Java过程中的跑步游戏所消耗的内容,而是混合一些JVM-STUFF。因此,我决定在JConsole和VisualVW的帮助下进一步分析。我怀疑一个懒惰的GC,但两种工具都表明GC定期运行。尽管如此,我的操作系统的资源监视器仍然显示了这种在空的libgdx-app中不断地攀登公羊,尽管它除了在红色背景上以令人讨厌的糟糕的逻辑 - smiley盯着我,在红色背景上无所事事; - (。

(。

我已经在论坛上进行了深入的搜索,并就记忆裂缝和libgdx的Ram-consupmtion进行了堆栈,但找不到令人满意的答案。因此,我想知道这种行为是否需要担心,还是正常?如果是这样,甚至是空的应用程序在Ram-usage中都具有持续的攀爬,那么一个人如何才能检测到一切都很好或该应用程序是否泄漏了内存?如果你们中有些人可以与像我这样的菜鸟分享您的智慧: - (

,我将非常感谢

提前-Codearist

我不是内存管理主题的专家,而不是一个明智的大师,但是我在那里只有一个简单的libgdx游戏。自25年前我开始实施我的第一个程序以来,我正在采用以下策略开发它:始终在低端硬件上进行测试。如果每个人运行顺利,那么一切都很好。我的LibGDX游戏在2011年以来的低端Android设备上运行良好,iOS版本从2013年开始在iPhone上运行良好。在当今的中型移动设备上,Android版本几乎永远不会杀死以节省内存。尽管我每天玩大约10次游戏,但为此前景,但这个过程显然还不够饥饿,无法确定其关闭。Play商店的评论者称赞游戏在低端设备上运行平稳。

所以我对您的答案是:LibGDX没有问题,也许您只是在系统上观看一些JVM行为。编写您的游戏,在低端设备上测试它 - 使用旧的Galaxy S3或Moto G,或者如果您只打算发布台式机,请使用旧的2011年业务笔记本电脑进行测试。如果一切正常,请不要试图追踪或解决不存在的问题。

顺便说一句,欢迎您加入GitHub页面上链接的LibGDX Discord。这是进行此类讨论的正确位置,我们有一些人在那里闲逛,以前确实检查了记忆行为。

最新更新