• 优化



    1. hashmap hashtable

    HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
    由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢

    Hashtable和HashMap有几个主要的不同:线程安全以及速度。仅在你需要完全的线程安全的时候使用Hashtable,而如果你使用Java 5或以上的话,请使用ConcurrentHashMap吧。

    Iterator与Enumeration的区别
    Iterator是一个接口,包含三个方法:
    hasNext()
    next()
    remove()
    Enumeration也是一个接口,它是一个遗留类,集合类中只有Vector和HashTable实现了该接口。它包含了两个方法:
    1. hasMoreElements()
    2. nextElement()
    由接口定义可知,Iterator在遍历时可以对元素进行删除操作;在多线程环境下,当遍历过程中有其他线程对集合类的结构进行修改(删除或添加元素,不包括修改某个元素的值),载单线程环境下,在遍历过程中通过集合自己的方法(put或是remove)修改集合结构,则会抛出ConcurrentModification异常。而Enumeration是一种Read-only。


    2. GC原理
    GC root, 递归, mark-swipe, GC-alloc: stop the world

    3. 性能指标:
    app启动速度,加载某activity速度, 游戏帧率, drop frame,  界面切换,卡顿? 显示GPU条形图
    大内存使用/内存泄漏,GC -》 https://mp.weixin.qq.com/s/CUU3Ml394H_fkabhNNX32Q?
    kGcCauseForAlloc ,当要分配内存的时候发现内存不够的情况下引起的GC,这种情况下的GC会stop world
    kGcCauseBackground,当内存达到一定的阀值的时候会去出发GC,这个时候是一个后台gc,不会引起stop world
    kGcCauseExplicit,显示调用的时候进行的gc,如果art打开了这个选项的情况下,在system.gc的时候会进行gc

    不恰当持锁导致系统无法正常休眠
    工作线程优先级未设置为Process.THREAD_PRIORITY_BACKGROUND,导致后台线程抢占UI线程cpu时间片,阻塞渲染操作;

    1. traceview systrace 过度绘制 HierarchyView , Tracer for OpenGL ES
    2. 内存泄漏分析
    leakcanary


    被杀唤醒: jobscheduler, 厂商push,接受push信息广播

    android P

    tensorflow lite
    lmk kernel->native
    priate api

    1)应用待机分组:Android P 新增应用待机分组功能,让系统根据用户的使用情况而限制应用调用 CPU 或网络等设备资源; -- - app分组 bucket, 对不常用的限制
    2)应用后台限制:Android P新增后台限制功能,若应用出现 Android Vitals 内所描述的不良行为,系统将提醒用户限制该应用访问设备资源;如
    Core vitals:
    ANR rates
    Crash rates
    Excessive wakeups
    Stuck partial wake locks

    All other vitals:
    Excessive background Wi-Fi scans
    Excessive background network usage
    App startup time
    Slow rendering
    Frozen frames
    Permission denials
    3)省电模式优化:Android P 优化了现有的省电助手功能,在启用该功能后,系统将对所有应用的后台运行实施加以限制;
    4)低耗电模式:当用户一段时间没有使用设备时,设备将进入低耗电模式,所有应用都将受到影响。 Android P 并未针对低电耗模式作出任何更改。

  • 相关阅读:
    将Vim改造为强大的IDE
    Ubuntu首次开启root用户
    ssh-keygen实现免密码登陆
    Ubuntu下配置samba服务器实现文件共享
    Ubuntu下Apache+php+mysql网站架设详解
    IIS支持PHP
    详解C/C++预处理器
    学C++之感悟
    return *this和return this的区别
    const 的全面总结
  • 原文地址:https://www.cnblogs.com/hushpa/p/10291718.html
Copyright © 2020-2023  润新知