• 刘伟
    2018-12-13
    高级的东西看的越多,越觉得Android高深的东西都是在Andriod之外的~
    
     42
  • 志伟
    2018-12-11
    8核cpu,平均负载8,idle时间去到72%,说明应用运行中系统CPU性能有很大的盈余。
    sample应用时间分布大头在kernel,细分看线程,SingleThread是主要耗时线程,并且共发生了3094次缺页异常(faults字段)。缺页异常的处理是在内核空间,也解释了kernel 耗时大头的原因,而这里做的操作就是读写磁盘。猜测可能是很多小文件的读写。
    综合分析瓶颈应该是sample将io集中在一个线程中处理,系统的全部cpu没有利用上,一核忙死,其他3核闲死。
    
     36
  • nodlee
    2018-12-14
    理论是基石,例子是上层建筑。希望作者多结合一些实际案例讲解,理论太多,感觉很空洞。作为付费用户,这个要求不高吧。
    
     25
  • 小雨点
    2018-12-11
    有点深了,表示看不太懂

    作者回复: 是linux部分还是四个卡顿工具比较难呢?

    
     9
  • memory
    2018-12-12
    感觉这个课可能更适用于比较深入研究过内存方面知识的人,但是大部分人应该都是开发业务的程序员,想对这方面做个系统的学习,感觉还是有点难了,给出的课后作业,有点一脸懵逼,有点无从下手的感觉

    作者回复: 已经很少很简单但是又可以进阶的内容,可以尝试看看文章中的一些背景知识

    后续也会给出学习路线图出来

    
     7
  • will
    2018-12-11
    很多没有接触的工具,还是需要去了解一下Linux方面的基础,后面的作业没看太明白
    
     6
  • Dr.strange🐬
    2018-12-13
    大神,能给Linux的学习路线吗
    
     4
  • 石先
    2018-12-12
    绍文哥,我又来了。我比较感兴趣之前内存优化文章里面提到对 Bitmap 的优化,可以[通过直接调用 libandroid_runtime.so 中 Bitmap 的构造函数]来创建一个空的 nativeBitmap 对象,但这个操作跟平时自己通过 jni 调用自己编译的 so 包里的 native 方法不太一样,网上也找不到例子来说明这个过程,所以能不能把这个过程再描述详细一点,或者最好是能 show me code,我也想自己实操一遍你说的那些点,非常感谢。

    作者回复: 这个其实没那么简单,编译的时候也要把Bitmap相关的很多头文件引入。

    调用是通过dlsym来实现的,这块我后续有时间提交到github吧

    
     3
  • 勇敢地追
    2019-11-02
    大略分析一下,问题集中在kernal和io上。R表示正在运行,S表示TASK_INTERRUPTIBLE,在等待某件事情发生(多数是IO)。可见很可能是一个线程在执行IO操作,其他线程在等待。kernel faults的解释在这里有:https://blog.csdn.net/vanquishedzxl/article/details/47029805。通常是在内核申请分配物理内存。kernel faults数字大表示申请了好多次。也就是说有大量IO操作
    说点体会吧,分析这个需要查阅好多资料,以及对Linux最好也要熟悉。熟悉以后基本就知道sample大致该怎么写了
    
     2
  • 国庆
    2018-12-12
    太极客了吧,讲的东西感觉像是华山论剑!

    作者回复: 所讲的内容并不是为了炫技,都是我们日常工作中可能会用到的知识

    
     2
  • 我的心情在荡漾
    2018-12-12
    各种命令一脸懵逼

    作者回复: 这些都是比较基本linux命令,可以在网上查一下用法

    
     2
  • snzang
    2018-12-11
    歪个楼,想请教大神们一个问题,我司的项目打debug签名的包跑在Android8.0以上的机器时会非常卡,换成release签名就很流畅。在8.0以下的手机上运行release和debug的包都很流畅,不知道是不是8.0限制了debug包的运行内存,想在这里问下有遇到相同情况的同学吗?
    
     2
  • Geek_sky
    2019-12-13
    我尝试用uptime查看系统负载,只能看到up time: 06:40:38, idle time: 20:50:31, sleep time: 00:00:00。我是用了cat /proc/loadavg查看到了系统负载。是不是现在的机器不能通过uptime查看了?

    作者回复: Android很多Linux的命令是没有支持的

     1
     1
  • 风炫灬梦想
    2019-09-15
    最近去补充了一些linux知识,感觉现在看起来比之前轻松了一些。推荐大家可以先把整个系列看完之后,在看一下linux相关的知识,再来复习一下,会有新的收获
    
     1
  • Akon Convict
    2018-12-20
    希望作者能给出个深入学习的路线图

    作者回复: 正在整理中

    
     1
  • 小美
    2018-12-18
    绍文老师: 我在我虚拟机上查看cpu 频率,可是您文中说的那个文件没有
    root@vbox86p:/sys/devices/system/cpu/cpu0 # cd cpufreq
    /system/bin/sh: cd: /sys/devices/system/cpu/cpu0/cpufreq: No such file or directory
    这和android 系统机器相关吗?
    
     1
  • 李大可
    2018-12-13
    通过读取文件获取进程cpu,线程cpu等使用状态的一个问题是在不少机型上,没有读取这些文件的权限。如果需要将release版本的这些性能数据采集并上传供数据分析,数据的采集就是一个问题,比如线程cpu使用率,常规的做法是才用两个间隔时间较短的cpu快照,然后计算应用cpu使用时间在系统cpu使用时间所占的比例,但是cpu使用时间是一个一个时间片,上述的统计方法并不够准确

    作者回复: 从我们的应用来看,获得的成功率还是非常高的。

    因为我们应用基本做了线程池收拢,大部分线程都是常驻的。可以从整体上看到各个线程的一些情况,这块数据在一些场景作用不大,一些场景还是可以发现问题。

    
     1
  • 庐州月
    2018-12-12
    虽然好多东西不懂或者没听过,但是这么系统的了解下还是比较好的,等以后慢慢会看消化。作为一个当枪匹马干了5年的开发来说,争取以后慢慢把这些一点点应用到开发中,建议绍文大神可以在以后的课程中讲解中结合单干者的开发场景做一些分享,感谢大佬分享,也希望单干着一起交流。
    
     1
  • 两天
    2018-12-11
    表示很有用,满满的干货
    
     1
  • 张亚运
    2019-12-14
    计算机科学太高深了,知道自己渺小的办法是多出去看看走走,在自己圈子里,总以为自己无所不知。

    作者回复: 终生学习

    
    
我们在线,来聊聊吧