android - GC_CONCURRENT释放

时间:2014-02-17 08:42:34

标签: android input garbage-collection buffer

我正在开发一个Android应用程序,通过朗姆酒时间从服务器获取数据,打开常规套接字并将请求发送到服务器,并通过常规InputStreamReader接收服务器响应:

 Reader input = new InputStreamReader(socket.getInputStream());
 String server_response = null;
 char responseLine ;
 while (something) {
            responseLine = (char)input.read();
            server_response = server_response + responseLine;
            // some work 
   }
   return server_response;

我发送了 4 服务器请求,我收到了前两个相应的响应而没有收到其他两个,而不是我收到一些单个字符作为响应然后大量的这些GarbageCollector行:

02-17 10:26:08.599: DEBUG/dalvikvm(595): GC_CONCURRENT freed 98K, 77% free 477K/2048K, paused 1ms+1ms
02-17 10:26:09.878: DEBUG/dalvikvm(605): GC_CONCURRENT freed 154K, 4% free 7178K/7431K, paused 18ms+8ms
02-17 10:26:10.238: DEBUG/dalvikvm(605): GC_FOR_ALLOC freed 84K, 3% free 7361K/7559K, paused 64ms

(值得一提的是服务器响应非常大)。

由于我试图改变我接收答案的方式:

input = new InputStreamReader(new BufferedInputStream(
                      socket.getInputStream(), 65000));

但这给了我相同的结果。我能做些什么来克服这个问题?

P.S。 1)我无法使用BufferedReader,因为服务器不会将响应作为行发送给我。

2)当我绕过前两个回复时,它通常会收到第三个回复。

0 个答案:

没有答案