Android内存抖动分析

1.为什么会内存抖动
简单说就是在短时间内有大量的gc操作
2.举个例子

public class MainActivity extends AppCompatActivity {
    private String result = "";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button bt = (Button) findViewById(R.id.bt);
        //点击按钮进行字符串拼接操作
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                for (int i = 0; i < 1000000; i++) {
                    result = result +i;

                }
            }
        });

    }
}

点击按钮进行字符串的拼接
我们知道String 类型的变量是不变的
比如
String value1 = "a";//创建一个对象指向value1
value1 = value1 + "b";//再次创建一个对象指向value1
上面的例子循环了1000000次,就会创建1000000个对象,这么多对象创建出来又被回收势必会引起内存抖动,我们通过日志或者monitors可以分析出来

com.dgtech.myapplication I/art: Background sticky concurrent mark sweep GC freed 26(864B) AllocSpace objects, 35(19MB) LOS objects, 18% free, 12MB/15MB, paused 5.530ms total 23.313ms
com.dgtech.myapplication I/art: Background sticky concurrent mark sweep GC freed 31(1040B) AllocSpace objects, 41(23MB) LOS objects, 0% free, 76MB/76MB, paused 5.250ms total 40.184ms
com.dgtech.myapplication I/art: Background partial concurrent mark sweep GC freed 114(3KB) AllocSpace objects, 159(104MB) LOS objects, 7% free, 50MB/54MB, paused 1.995ms total 107.696ms
com.dgtech.myapplication I/art: Background partial concurrent mark sweep GC freed 36(1048B) AllocSpace objects, 42(29MB) LOS objects, 6% free, 59MB/63MB, paused 13.771ms total 57.703ms
com.dgtech.myapplication I/art: Background sticky concurrent mark sweep GC freed 14(480B) AllocSpace objects, 17(12MB) LOS objects, 1% free, 15MB/15MB, paused 5.508ms total 12.141ms
com.dgtech.myapplication I/art: Background sticky concurrent mark sweep GC freed 20(672B) AllocSpace objects, 27(19MB) LOS objects, 0% free, 16MB/16MB, paused 5.435ms total 19.526ms

当有大量日志连续打印以上类似内容时,说明内存有抖动,我们需要检查代码,或者使用更直观的方式来看:

Monitors

从Monitors的监控来看,内存一开始是平稳的,当点击拼接字符串的按钮后变开始抖动

注:有的时候我们无法选择要调试的程序,就像这样:

异常情况

这个时候我们需要选择tools - Android - Enable ADB Integration

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,036评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,046评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,411评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,622评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,661评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,521评论 1 304
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,288评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,200评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,644评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,837评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,953评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,673评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,281评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,889评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,011评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,119评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,901评论 2 355

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,656评论 18 139
  • 介绍 内存泄露是每个开发者最终都不得不面对的问题。即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况。内存...
    太阳mob阅读 1,901评论 1 9
  • java 接口的意义-百度 规范、扩展、回调 抽象类的意义-乐视 为其子类提供一个公共的类型封装子类中得重复内容定...
    交流电1582阅读 2,228评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,129评论 25 707
  • 很抱歉,我是一个如此的人。不通人情事故,使周围的人难解,也体现了在某些方面,我的确应该反思,因羞涩不愿当面说一些话...
    吴王思贤阅读 847评论 0 0