首先:我使用了搜索功能,但没有任何答案帮助我。
我有一个来自http://kociemba.org/cube.htm的算法来解决java中的rubiks多维数据集,我想在Android设备上运行它(在这种情况下是三星Galaxy S2)。但是当我运行该功能时,应用程序“冻结”并且LogCat经常显示:
GC_CONCURRENT释放394K,16%免费9600K / 11335K,暂停12ms + 12ms,总计60ms
如果我想创建以下类,则会出现此问题:
CoordCube c = new CoordCube(cc);
我不想发布整个CoordCube类,但算法中有很多静态表。在算法的文档中,据说它需要5 MB的内存空间。
所以我认为总堆太低了。
getMemoryClass()返回48 MB,所以我想知道为什么总堆大小(根据GC_CONCURRENT语句)是~12MB。因此有非常大的静态表,没有机会减少内存使用。
有没有办法增加堆大小,以便我可以创建这个类?我试过 android :: largeHeap =“true”,但没有改变。
我希望有人能帮助我!提前谢谢。
修改
我让程序在没有调试器的情况下运行几分钟然后继续运行。如果我重新运行代码,它运行不到一秒钟。 (因为我猜的静态数据)。因此,第一次执行需要很长时间。
GC_CONCURRENT语句的已用内存和总内存会增加,直到完成为止。 知道如何加快这个程序吗?