JVM & DVM&泄漏

2022-11-27  本文已影响0人  就爱烫卷发

JVM java虚拟机 (基于栈,指令多,复制多,速度慢)
.java -> .class-> .jar (多个.class 加载方式会慢)

DVM Dalvik Virtual Machine(基于寄存器,指令大,指令少,)
.java -> .class-> .dex(工具会去除冗余信息,所有class文件被放在一起)

ART(Android Runtime) 替代了DVM(4.4发布  ,5.0使用)在 ART 中,系统在安装应用程序时会
进行一次 AOT (ahead of time compilation ,预编译) 这样运行的效率就大大提升了,缺点就是预编译导致安装的时间变长,预编译之后占用的空间会变大,7.0之后使用JIT+AOT

使用 systrace
python systrace.py --time=10 -o newtrace.html scahed gfx view wm

内存泄漏:
对于一些需要Context的类,除了dialog(这个必须为Activity)其他的不跟随Activity生命周期,需要使用Application的Context 以防止内存泄漏

上一篇 下一篇

猜你喜欢

热点阅读