![]() |
1
5
|
![]() |
2
3
如果您在一个StringBuilder中存储了大量信息,您会在某个时候引用它吗?如果没有,只需将其写入另一个媒体(数据库、文件等)。程序具有有限的资源量,不能同时保存整个系统的所有状态。-XMX将为您在内存中提供更多的存储空间,但是它不会使您的存储能力无限大。 |
![]() |
3
2
考虑使用
此外,还可以通过将字符串写入文件而不是将其保存在内存中来减少内存使用量。
|
![]() |
4
1
假设每个线程为1MB。这就是在进程分配的内存之上创建每个内存的RAM成本。 |
![]() |
5
1
正如格雷戈里所说,给JVM一些选项,比如-xmx。 还可以考虑使用线程池或执行器来确保只有给定数量的线程同时运行。这样就可以在不减速的情况下限制内存量(因为您的处理器无论如何都不能同时运行550个线程)。 当使用执行器时,不要在构造函数中创建StringBuilder,而是在run方法中创建。 |
![]() |
6
0
你可以使用 FileWriter 若要将文本输出到文件,请使用文件读取器将其拉回到文件中。这样,您只需要将文件名存储在内存中,而不需要存储字符串的全部内容。 为了减少线程数量,您可以使用ExecutorService,或者只使用从队列中读取的几个线程。 我的猜测是,只要稍加修改,你的程序可能就不需要太多内存了。 |
![]() |
Rackover · 超过PHP二进制限制 7 年前 |
![]() |
ulima2_ · Jekyll截断博客帖子数量的条件是排除一些 7 年前 |
![]() |
Kabhi · 相当于Postgres查询的SQL Server 8 年前 |
![]() |
Zelphir Kaltstahl · 在Racket中指定内存限制 8 年前 |
|
sinabakh · 限制套接字io连接数 8 年前 |