2016-11-04 39 views
2

我在我的服务中遇到了一个stackoverflow错误,它附加到我的主要活动中。有没有办法在我的服务中更改堆栈大小?我遇到了Xss参数,但显然它在vm选项(帮助 - >编辑vmoptions)中不可用。如何在Android应用程序中更改(线程的)堆栈大小?

有点背景: 当我尝试读取代码中的序列化机器学习模型,然后反序列化它时,我收到错误。当这个模型建立在一个小的数据集上时,同样的功能可以正常工作,但是当我使用更大的数据集建立同一个模型时,这个功能不起作用。

任何想法,我该怎么做?

+0

我想你需要优化你的代码之前问 – zombie

+0

@ zombie我反序列化“神经网络分类器”这是建立了一个大数据集,所以我不认为它必须对我的代码优化做任何事情。 – utengr

+0

你试过android:largeHeap =“true” – zombie

回答

2

你不能改变你的应用程序的堆栈大小,但是你可以创建一个新的线程,并使用此构造设置堆栈大小为新线程:

构造Thread (ThreadGroup group, Runnable target, String name, long stackSize)

反正一个新的线程一个好主意,你得到一个干净的堆栈。 Android主线程已经有大约10个条目属于Dalvik和系统的其他部分...

+0

我不想改变整个应用程序的堆栈大小,但只有计时器线程我在用。我是TIMER TASK和定时器,用于在我的应用中定期执行任务。 – utengr

+0

您无法更改'Timer'使用的线程。因此,您需要第二个具有适当堆栈大小的线程,您可以从“TimerTask”触发。 – Robert

+0

谢谢。我会试一试。 – utengr

相关问题