日期:2014-05-20  浏览次数:20788 次

用java进行base64编码的时候,效率很低,如何解决
rt,
用sun.misc.BASE64Encoder().encode(infile,outfile);//infile为读文件流,outfile为写文件流,就是从一个文件读出base64编码后,输入到另一文件。
时,发现效率很低,一个6M多的文件要处理30多秒,而且CPU占用率很高。

当把文件一部分先读到一个byte   []buff;时,再反复调用sun.misc.BASE64Encoder().encode(buff,outfile);直到处理完为止,每调用几次encode就sleep(1),这样CPU利用率会降下来,但处理时间会更长,有没有更好的办法解决这一问题。

还有个小问题,为什么我写的java窗口程序,只有在把窗口最小化的时候,才会释放内存,不最小化内存一直往上涨,怎么能解决这一问题。

------解决方案--------------------
同问,不知道为什么java的转换效率怎么这么低,原来做.NET的时候那个吞吐量啊,太爽了,完全就是由磁盘速度决定的