03 2017 档案
摘要:一般看进程的内存占用情况,就看pss。 那么pss是什么意思呢?因为有一些内存是多个进程共享的,我们计算的时候如果把这些计算进去进程的内存占用,显然会多算。 pss的意思是进程自己独自占有的+共享的/共享的数目。 因此如果进程有自己独立的内存100M,和另外一个进程共享10M。 那么pss就是100
阅读全文
摘要:Native code,比如说c++的代码,不会直接和JS运行时打交道,运行的都是c++自己的代码。 所以,只要Native code正在运行c++自己的代码,这段线程就是和虚拟机无关的,两个可以不相互干涉。 但是native code可以调用JS/JAVA的栈,通过native的JS接口或者JNI
阅读全文
摘要:p_obj = gc_alloc_fast(size, vt); if(p_obj == null){ prepare_for_native_call(); gc_alloc(size, vt); clean_after_native_call(); } //this routine does no
阅读全文
摘要:度量名词: Throughput--吞吐量,mutator占总时间百分比Garbage collection overhead--GC时间开销,与上面成反比Pause time--GC暂停时间Frequency of collection--GC发生频率Footprint--覆盖区。理解为GC和mu
阅读全文
摘要:card table为分代GC设计。 分代GC的优势之一是可以有minor GC。 minor GC会忽略old(相对) space的引用追溯,如果mark追溯到old space,minor GC即终止这一次追溯。 这时,monior GC将漏mark old ->new 的引用,从而对new s
阅读全文
摘要:分配器往往需要fast allocator。 如果像malloc一样,维护free_list再分配,显然效率很低。 所以有bump-the-pointer机制。 如JVM的eden,要么GC后变空,要么分配时直接往后+size,返回next_free指针,所以不存在维护free_list的问题。 这
阅读全文
摘要:如何理解异步是一个重点。一句话来说,异步就是把任务扔出去,规定这个任务完成时对应的策略函数。 异步的有点就是首先,扔出去,就不会阻塞;另外,我认为才是最重要的,你不需要关心任务什么时候完成,因为你已经规定完成时的回调的策略函数。 第二点,才是理解的重点。 另外: 在node.js实现中,异步注册的回
阅读全文