通常,答案是否定的,但是您当然可以调整导致内存不足的条件。特别是,如果您在流之前发送字符串长度,则将能够创建一个内部具有正确数组大小的StringBuilder。创建后无法调整数组的大小,因此,如果StringBuilder中的数组容量用完,则实现必须分配一个新数组(通常为两倍大小,以避免过多的调整大小),然后复制旧数组内容。考虑大小为X的流,要调整刚好是X-1容量的StringBuilder的大小,则需要近X* 3的内存量。调整StringBuilder的大小,从而避免调整大小,这将使您可以将较大的流压缩到内存中。
您可能想做的另一件事是调整服务器进程可用的内存量。启动服务器进程时,请使用-Xmx1024m之类的开关。
当然,最好修改算法以不要求将整个流都保存在内存中。它使您能够使用相同数量的硬件处理更多的客户端。



