当前位置: 首页 > 知识库问答 >
问题:

在Android上,每隔一次运行都内存不足

周苑博
2023-03-14
int  worldgrid= new int[640][480][3];

在我的构造函数中,我可能不得不缩短它。虽然我第一次尝试就开始工作了。记录cat消息:

05-08 19:09:46.035:E/dalvikvm-heap(420):28字节分配内存不足。

共有1个答案

曹波鸿
2023-03-14

可能,内存中有这么大的数组不太好。但无论如何,您可以通过以下方式重构数组来减少内存占用:int worldgrid=new int[3][480][640];

这一技巧将以几倍的速度减少内存使用。它与数组和每一项的java内存开销有关,详细信息可以在这里找到。http://www.javamex.com/tutorials/memory/array memory_usage.shtml

还要检查,你不保留任何指向数组的链接,这将阻止从内存中删除它。此外,垃圾回收器不会在删除所有链接后立即从内存中删除。因此,如果您没有使指向数组的链接等于null,它将保留在内存中,并且当您重新启动应用程序时(不能保证活动完全被杀死),并且尝试在onCreate中创建数组(正如我从日志中看到的那样),旧的数组将不会被删除。

 类似资料:
  • 问题内容: 和别的: 两者都不起作用(强制关闭应用程序)。我可以尝试其他哪些选择? 问题答案: 您的代码失败,因为您在后台线程中执行睡眠,但是显示数据必须在UI线程中执行。 您必须从runOnUiThread(Runnable)运行displayData或定义处理程序并将消息发送给它。 例如:

  • 问题内容: 我正在使用Python和PyGTK。我对运行某个功能感兴趣,该功能每隔几分钟从串行端口获取数据并保存一次。 当前,我正在时间库中使用sleep()函数。为了能够进行处理,我将系统设置如下: 这种设置使我从串口读取数据的间隔为5分钟。我的问题是我希望能够让我的readserial()函数每隔5分钟暂停一次,并且能够一直执行操作,而不是使用time.sleep()函数。 关于如何解决这个问

  • 我在努力打字 当我保存一个实体时,有时我的数据会更新,有时不会。完全相同的请求第一次不会起作用,但第二次会起作用。我使用保存()更新和插入。插入时一切都好。 以下是我的代码(使用NestJS键入表单): == == == == 当我在save()之后找到()时,我的用户地址不会更新,而我从Mongo收到了modifiedCount 1。如果我重复这个请求,这一次它是有效的。。。 有什么想法吗?

  • 昨天,我尝试使用Composer在我的Laravel 4项目中的一个项目上安装,我记不清事件链,但它没有成功安装。从那以后,我一直收到Composer内存不足的错误-。 我将php.ini

  • 我写了这个程序,它以n和k为输入,然后以数组A[n]为输入。程序必须以数组a中小于k且为奇数的不同整数的总数no给出输出。但是这个程序的每一个输入都产生0作为输出。

  • 我使用taskscheduleR来运行我的R代码。我必须运行一次的那个运行得很好,但是其他的(每小时、每周、每天等等)都不行。)工作,尽管其余报告“成功:已成功创建计划任务“test2” 这是我用来运行一次的代码(工作正常): 这是我用来运行WEEKLY的代码(不起作用): 在这种情况下没有生成日志,看起来任务从未计划过。 类似于每小时(不起作用):库(taskscheduleR)myscript