-3

我的 Web 应用程序在客户端传递它设法从剪贴板图像获取的 base64 字符串时遇到 OutOfMemory 错误。

当大字符串作为参数传递给其他方法时,就会出现问题。

使用 GWT 传递大型 base64 字符串的解决方法是什么

4

2 回答 2

1

当大字符串作为参数传递给其他方法时,就会出现问题。

不,不是!

将 String 作为参数传递不会导致OutOfMemoryError.

您看到的 OOME 要么是由创建String对象引起的,要么是由对对象执行某些操作String导致创建新对象引起的。它不是由传递字符串引起的,无论它有多大。


如果您需要有关如何处理它的建议,您需要向我们展示创建字符串的代码和使用它的代码。但是处理过大数据块的一般方法是以避免同时在内存中表示所有数据的方式处理数据。

于 2013-09-10T11:43:17.877 回答
0

如果您使用的是 GWT 开发模式,则可能是 Eclipse 的 GWT Jetty 插件问题,尝试使用以下命令禁用开发模式:

http://127.0.0.1:8888/index.html

代替

http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997

如果它有效,如果您增加 JVM 堆空间,您可以继续使用开发模式,例如:

-XX:PermSize=128m -XX:MaxPermSize=256m -Xmx1224m

这必须是开发的问题。模式,因为传递字符串几乎不会导致 OutOfMemory 错误。

于 2013-09-10T12:02:07.140 回答