文章分类 - ART
摘要://space.h // See Space::GetGcRetentionPolicy. enum GcRetentionPolicy { // Objects are retained forever with this policy for a space. kGcRetentionPolicyNeverCollect, // Every GC cycle w...
阅读全文
摘要:HTC++++Heap::RequestConcurrentGC() #00 pc 001a5db3 /system/lib/libart.so (art::gc::Heap::RequestConcurrentGC(art::Thread*, bool)+62) #01 pc 001a5e7b /system/lib/libart.so (art::gc::Heap::RequestC...
阅读全文
摘要:这些值由手机厂商决定,但是要使它生效,必须添加其它patch 另外,MTK也可能自己设置相关的参数,在build的时候可能会覆盖设置的参数。 那么就只能对版本做CTS测试了,去检测相关的property值。
阅读全文
摘要:执行gc cause 为kGcCauseHomogeneousSpaceCompact的入口函数为PerformHomogeneousSpaceCompact()。 1. 由Forground GC切换为Background GC,会调用DoPendingCollectorTransition()方
阅读全文
摘要:说道JDWP,我简单对其说明下,说明是JDWP呢,JDWP的全写是:Java Debug Wire Protocol:即JAVA调试器无线协议,它定义了调试器(Debugger)和被调试的JAVA虚拟机(target vm)之间的通信协议,在这里,我更要说明下:Debugger与Target vm,
阅读全文
摘要:信号的生成来自内核,让内核生成信号的请求来自3个地方: 1. 用户:用户能够通过输入CTRL+c、Ctrl+\,或者是终端驱动程序分配给信号控制字符的其他任何键来请求内核产生信号; 2. 内核:当进程执行出错时,内核会给进程发送一个信号,例如非法段存取(内存访问违规)、浮点数溢出等; 3. 进程:一
阅读全文
摘要:ART运行时的Foreground GC和Background GC 它们是在ART运行时启动通过-Xgc和-XX:BackgroundGC指定的。但是在某同一段时间,ART运行时只会执行Foreground GC或者Background GC。也就是说,Foreground GC和Backg
阅读全文
摘要:的触发1. for Alloc : 内存分配的时候2. Explicit : 显示调用的时候3. Background : 在后台的时候 Heap类还定义了以下三个垃圾收集接口:1. CollectGarbage(): 用来执行显式GC,例如用实现System.gc接口。 libcore/luni/
阅读全文
摘要:Compacting GC对Bump Pointer Space的使用是略有不同的,因此,我们又分为Semi-Space GC、Generational Semi-Space GC和Mark-Compact GC三种情况来介绍Bump Pointer Space。 Semi-Space GC: 它由
阅读全文
摘要:Heap类的成员函数AllocObject和AllocNonMovableObject使用的分配器类型分别是由成员变量current_allocator_和current_non_moving_allocator_决定的。前者的值与当前使用的GC类型有关。当GC类型发生变化时,就会调用Heap类的成
阅读全文
摘要:ImageHeader size 0x80 = 140个字节 // header of image files written by ImageWriter, read and validated by Space. class PACKED(4) ImageHeader { public: Ima
阅读全文
摘要:$ adb shell pmap -x 10540 10540: com.android.settings Address Kbytes PSS Dirty Swap Mode Mapping 0000000012c00000 2084 0 0 0 ----- dalvik-main space (
阅读全文
摘要:sched_yield() 这个函数可以使用另一个级别等于或高于当前线程的线程先运行。如果没有符合条件的线程,那么这个函数将会立刻返回然后继续执行当前线程的程序。
阅读全文
只有注册用户登录后才能阅读该文。
摘要:Handle 在V8中,内存分配都是在V8的Heap中进行分配的,JavaScript的值和对象也都存放在V8的Heap中。这个Heap由V8独立的去维护,失去引用的对象将会被V8的GC掉并可以重新分配给其他对象。而Handle即是对Heap中对象的引用。V8为了对内存分配进行管理,GC需要对V8中
阅读全文
摘要:既有Dalvik虚拟机进程和线程,又有Native操作系统进程和线程,而且它们又可以同时执行Java代码和Native代码。为了理清它们之间的关系,我们将按照以下四个情景来组织本文: 1. Dalvik虚拟机进程的创建过程; 2. Dalvik虚拟机线程的创建过程; 3. 只执行C/C++代码的Na...
阅读全文
摘要:adb shell getprop |grep vm 指定虚拟机运行方式:使用libart.so[persist.sys.dalvik.vm.lib.2]: [libart.so] Dalvik虚拟机与Java虚拟机的最显著区别是它们分别具有不同的类文件格式以及指令集。Dalvik虚拟机使用的是de
阅读全文