Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android垃圾收集器在我的应用程序中努力工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_450_0@
@H_450_0@
我的应用程序有一个service with Thread,它在后台运行并侦听来自远程服务器的通信.
当线程正在运行时,我在我的LogCat中看到了很多dalvikvm动作.
好吗?或者它可能是一些内存泄漏:

这是我的Thread run():

@Override
public void run() {
    startKeepAliveTimer();  
    try {
            socket = new Socket(host,port);
            if (socket != null)
            {
                Log.i("ServerConnection","Server connection opened");
                this.app.setConnectedToServer(true);
                serveRMANager.loginToServer();
            }
            else
                app.setConnectedToServer(false);

            while (app.isConnectedToServer()) 
            {
                app.getFacebookManager().refreshAccessToken();                      
                BufferedReader in = new BufferedReader(new InputStreamReader(
                socket.geTinputStream()));
                String input;
                input = in.readLine();
                if (input != null)
                {
                    lastOnline = System.currentTimeMillis();
                    input = input.trim();
                    input = app.decrypt(input);
                    Log.e("Server Reponse",input);                 
                    serveRMANager.processData(app.convertToJSONObject(input));
                }
            }
        } catch (IOException E) {
            Log.e("ServerConnection",e.toString());
        }           

        Log.i("ServerConnection","Server connection closed");
}

这是我的StackTrace:

paused 8ms
            11-09 15:42:36.862: D/dalvikvm(3806): GC_CONCURRENT freed 1367K,33% free 10661K/15815K,paused 1ms+2ms
            11-09 15:42:36.892: D/dalvikvm(3806): GC_CONCURRENT freed 1390K,paused 1ms+1ms
            11-09 15:42:36.902: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,33% free 10637K/15815K,paused 9ms
            11-09 15:42:36.932: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:36.952: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:36.972: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,33% free 10652K/15815K,paused 1ms+1ms
            11-09 15:42:36.992: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 12ms
            11-09 15:42:37.022: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 2ms+1ms
            11-09 15:42:37.032: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.052: D/dalvikvm(3806): GC_CONCURRENT freed 8K,33% free 10644K/15815K,paused 1ms+1ms
            11-09 15:42:37.072: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,33% free 10629K/15815K,paused 9ms
            11-09 15:42:37.092: D/dalvikvm(3806): GC_CONCURRENT freed 1245K,paused 1ms+0ms
            11-09 15:42:37.112: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.132: D/dalvikvm(3806): GC_CONCURRENT freed 8K,paused 1ms+1ms
            11-09 15:42:37.152: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,paused 9ms
            11-09 15:42:37.182: D/dalvikvm(3806): GC_CONCURRENT freed 1245K,25% free 12018K/15815K,paused 1ms+1ms
            11-09 15:42:37.212: D/dalvikvm(3806): GC_CONCURRENT freed 3208K,33% free 10664K/15815K,paused 1ms+0ms
            11-09 15:42:37.232: D/dalvikvm(3806): GC_FOR_ALLOC freed 1426K,paused 11ms
            11-09 15:42:37.252: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+0ms
            11-09 15:42:37.272: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:37.302: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 3ms+0ms
            11-09 15:42:37.312: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:37.332: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+0ms
            11-09 15:42:37.362: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 7ms
            11-09 15:42:37.402: D/dalvikvm(3806): GC_CONCURRENT freed 1360K,33% free 10667K/15815K,paused 1ms+1ms
            11-09 15:42:37.432: D/dalvikvm(3806): GC_CONCURRENT freed 1299K,paused 1ms+1ms
            11-09 15:42:37.452: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 13ms
            11-09 15:42:37.472: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:37.492: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 12ms
            11-09 15:42:37.512: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+0ms
            11-09 15:42:37.532: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.552: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:37.572: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.622: D/dalvikvm(3806): GC_CONCURRENT freed 1266K,32% free 10761K/15815K,paused 1ms+1ms
            11-09 15:42:37.642: D/dalvikvm(3806): GC_FOR_ALLOC freed 1562K,paused 13ms
            11-09 15:42:37.672: D/dalvikvm(3806): GC_CONCURRENT freed 1367K,33% free 10653K/15815K,paused 1ms+1ms
            11-09 15:42:37.692: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:37.712: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:37.722: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.752: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,32% free 10758K/15815K,paused 2ms+1ms
            11-09 15:42:37.762: D/dalvikvm(3806): GC_FOR_ALLOC freed 1559K,paused 11ms
            11-09 15:42:37.792: D/dalvikvm(3806): GC_CONCURRENT freed 1367K,paused 2ms+1ms
            11-09 15:42:37.812: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:37.832: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:37.852: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:37.872: D/dalvikvm(3806): GC_CONCURRENT freed 8K,paused 1ms+1ms
            11-09 15:42:37.882: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,paused 9ms
            11-09 15:42:37.912: D/dalvikvm(3806): GC_CONCURRENT freed 1245K,paused 1ms+0ms
            11-09 15:42:37.932: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:37.962: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 0ms+1ms
            11-09 15:42:37.972: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:38.002: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:38.012: D/dalvikvm(3806): GC_FOR_ALLOC freed 1559K,paused 12ms
            11-09 15:42:38.042: D/dalvikvm(3806): GC_CONCURRENT freed 1367K,paused 1ms+1ms
            11-09 15:42:38.062: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:38.092: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:38.112: D/dalvikvm(3806): GC_CONCURRENT freed 1293K,paused 1ms+0ms
            11-09 15:42:38.132: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 13ms
            11-09 15:42:38.162: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 2ms+1ms
            11-09 15:42:38.182: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:38.202: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+0ms
            11-09 15:42:38.222: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:38.242: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:38.262: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 7ms
            11-09 15:42:38.272: D/dalvikvm(3806): GC_CONCURRENT freed 8K,paused 1ms+1ms
            11-09 15:42:38.292: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,paused 8ms
            11-09 15:42:38.322: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:38.342: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 7ms
            11-09 15:42:38.362: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:38.382: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:38.402: D/dalvikvm(3806): GC_CONCURRENT freed 8K,paused 1ms+0ms
            11-09 15:42:38.412: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,paused 9ms
            11-09 15:42:38.442: D/dalvikvm(3806): GC_CONCURRENT freed 1245K,paused 1ms+1ms
            11-09 15:42:38.462: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:38.492: D/dalvikvm(3806): GC_CONCURRENT freed 8K,25% free 12019K/15815K,paused 1ms+2ms
            11-09 15:42:38.522: D/dalvikvm(3806): GC_CONCURRENT freed 3103K,32% free 10769K/15815K,paused 1ms+2ms
            11-09 15:42:38.532: D/dalvikvm(3806): GC_FOR_ALLOC freed 1570K,paused 9ms
            11-09 15:42:38.552: D/dalvikvm(3806): GC_CONCURRENT freed 1270K,paused 1ms+1ms
            11-09 15:42:38.572: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 7ms
            11-09 15:42:38.592: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:38.622: D/dalvikvm(3806): GC_CONCURRENT freed 1293K,paused 1ms+1ms
            11-09 15:42:38.632: D/dalvikvm(3806): GC_FOR_ALLOC freed 1559K,paused 11ms
            11-09 15:42:38.662: D/dalvikvm(3806): GC_CONCURRENT freed 1246K,paused 1ms+1ms
            11-09 15:42:38.682: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 13ms
            11-09 15:42:38.702: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:38.722: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:38.742: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:38.762: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:38.782: D/dalvikvm(3806): GC_CONCURRENT freed 8K,paused 1ms+1ms
            11-09 15:42:38.802: D/dalvikvm(3806): GC_FOR_ALLOC freed 1406K,paused 10ms
            11-09 15:42:38.822: D/dalvikvm(3806): GC_CONCURRENT freed 1245K,paused 1ms+1ms
            11-09 15:42:38.842: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:38.872: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,24% free 12027K/15815K,paused 1ms+1ms
            11-09 15:42:38.902: D/dalvikvm(3806): GC_CONCURRENT freed 3208K,33% free 10672K/15815K,paused 1ms+0ms
            11-09 15:42:38.912: D/dalvikvm(3806): GC_FOR_ALLOC freed 1450K,paused 9ms
            11-09 15:42:38.942: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:38.962: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 7ms
            11-09 15:42:38.982: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.002: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:39.022: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.042: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:39.072: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:39.092: D/dalvikvm(3806): GC_CONCURRENT freed 1390K,paused 1ms+1ms
            11-09 15:42:39.112: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:39.132: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms
            11-09 15:42:39.152: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:39.172: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+0ms
            11-09 15:42:39.192: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:39.212: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.232: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:39.252: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.272: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:39.302: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 2ms+1ms
            11-09 15:42:39.322: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:39.342: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 2ms+1ms
            11-09 15:42:39.362: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:39.382: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.402: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 11ms
            11-09 15:42:39.432: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.442: D/dalvikvm(3806): GC_FOR_ALLOC freed 1559K,paused 11ms
            11-09 15:42:39.472: D/dalvikvm(3806): GC_CONCURRENT freed 1246K,paused 1ms+1ms
            11-09 15:42:39.492: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 10ms
            11-09 15:42:39.522: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.532: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 8ms
            11-09 15:42:39.562: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 2ms+1ms
            11-09 15:42:39.572: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:39.602: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.612: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 12ms
            11-09 15:42:39.642: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+1ms
            11-09 15:42:39.652: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 9ms
            11-09 15:42:39.682: D/dalvikvm(3806): GC_CONCURRENT freed 1269K,paused 1ms+2ms
            11-09 15:42:39.692: D/dalvikvm(3806): GC_FOR_ALLOC freed 1559K,paused 10ms
            11-09 15:42:39.722: D/dalvikvm(3806): GC_CONCURRENT freed 1246K,paused 1ms+1ms
            11-09 15:42:39.742: D/dalvikvm(3806): GC_FOR_ALLOC freed 1414K,paused 12ms
            11-09 15:42:39.762: D/dalvikvm(3806): GC_CONCURRENT freed 1366K,paused 1ms+1ms

更新:
从循环内部删除所有“新”元素之后,我使用了DDMS分配跟踪器,发现我在input = in.readLine()中有很多分配;在InputStream对象里面有一些wrap()函数……怎么会这样?怎么做

解决方法

这不应该是一个很大的问题 – 毕竟,这不是一个错误,而是GC在做它的工作.

但是,在这种情况下,每秒都会释放大量内存(并且由于堆的状态保持不变(Allocated – FreE),这也意味着每秒都会分配这个内存.这会加剧电池消耗并且会导致你的应用程序滞后.

像其他人建议的那样,尝试在while之外实例化对象,而不是在每个循环中创建和删除它们.例如,将循环更改为:

BufferedReader in = new BufferedReader(new InputStreamReader(
            socket.geTinputStream()));
while (app.isConnectedToServer()) 
        {
            app.getFacebookManager().refreshAccessToken();                      
            String input;
            input = in.readLine();
            if (input != null)
            {
                lastOnline = System.currentTimeMillis();
                input = input.trim();
                input = app.decrypt(input);
                Log.e("Server Reponse",input);                 
                serveRMANager.processData(app.convertToJSONObject(input));
            }
        }
@H_450_0@

大佬总结

以上是大佬教程为你收集整理的Android垃圾收集器在我的应用程序中努力工作全部内容,希望文章能够帮你解决Android垃圾收集器在我的应用程序中努力工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:android努力垃圾工作应用我的收集程序
猜你在找的Android相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap