![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hotspot和Linux内核
文章平均质量分 97
孙大圣666
这个作者很懒,什么都没留下…
展开
-
Hotspot 垃圾回收之SafepointSynchronize(一) 源码解析
1、定义2、os::serialize_thread_states /write_memory_serialize_page3、TemplateInterpreter::notice_safepoints /ignore_safepoints4、os::make_polling_page_unreadable /make_polling_page_readable5、JavaThread::check_safepoint_and_suspend_for_native_trans原创 2020-02-17 15:12:31 · 1647 阅读 · 1 评论 -
Hotspot Parker和ParkEvent 源码解析
目录一、LockSupport1、park2、unpark二、Parker1、定义2、Allocate /Release3、park4、unpark三、ParkEvent1、定义2、Allocate /Release3、TryPark /park4、unpark Parker是Unsafe类的park和unpark方法...原创 2020-03-30 17:56:37 · 2221 阅读 · 6 评论 -
Hotspot Thread本地方法实现 源码解析
目录1、start2、join3、sleep4、interrupt /interrupted5、yeild6、holdsLock7、setPriority Java中操作线程都是通过Thread的API来实现,其中核心逻辑都封装在本地方法中,其实现在jdk\src\share\native\java\lang\Thread.c中,部分方法如将当前线程...原创 2020-03-29 19:30:31 · 1279 阅读 · 0 评论 -
Hotspot 三种锁实现总结
目录一、BasicObjectLock / BasicLock二、偏向锁三、轻量级锁四、重量级锁六、整体加锁流程七、整体解锁流程 Java6对synchronized关键字进行了大幅度的优化,引入偏向锁和轻量级锁的概念,大幅减少了获得锁和释放锁的性能损耗。从Java6开始,加上原有的重量级锁(又叫监视器锁),Java中的对象锁一共有4种状态,分别是:无锁状...原创 2020-03-28 21:34:23 · 2717 阅读 · 0 评论 -
Hotspot 重量级锁ObjectMonitor(二) 源码解析
目录1、AddWaiter /DequeueWaiter /DequeueSpecificWaiter2、wait3、notify4、notifyAll5、exit6、try_enter /complete_exit7、总结本篇博客继续上一篇《Hotspot 重量级锁ObjectMonitor(一) 源码解析》将ObjectMonitor的其他关键方法的实...原创 2020-03-28 21:26:18 · 1289 阅读 · 0 评论 -
Hotspot 重量级锁ObjectMonitor(一) 源码解析
目录1、定义2、TrySpin_VaryDuration3、ObjectWaiter4、EnterI5、JavaThreadBlockedOnMonitorEnterState /OSThreadContendState /ThreadBlockInVM6、enterObjectMonitor不仅是重量级锁的实现,还是Object的wait/notify/no...原创 2020-03-28 11:43:08 · 3166 阅读 · 4 评论 -
Hotspot 偏向锁BiasedLocking 源码解析
目录1、定义2、init3、init方法补充说明4、revoke_bias5、bulk_revoke_or_rebias_at_safepoint6、revoke_and_rebias7、VM_RevokeBias /VM_BulkRevokeBias8、revoke_at_safepoint /revoke9、preserve_marks /r...原创 2020-03-23 18:58:27 · 2575 阅读 · 3 评论 -
Hotspot synchronized与volatile关键字实现(二) 源码解析
目录一、synchronized底层实现1、修饰代码块字节码分析2、InterpreterGenerator::lock_method3、执行本地方法synchronized解锁4、解释执行普通Java方法synchronized解锁二、jni_MonitorEnter /jni_MonitorExit1、jni_MonitorEnter2、jni_Moni...原创 2020-03-20 21:25:10 · 1215 阅读 · 1 评论 -
Hotspot synchronized与volatile关键字实现(一) 源码解析
一、synchronized用法1、修饰实例方法2、修饰静态方法3、修饰代码块二、synchronized底层实现1、修改代码块的字节码分析2、monitorenter 指令实现3、InterpreterRuntime::monitorenter4、monitorexit 指令实现5、InterpreterRuntime::monitorexit6、monitorenter/ monitorexit 指令的编译执行原创 2020-03-16 15:18:41 · 1917 阅读 · 5 评论 -
Hotspot Object本地方法实现 源码解析
一、Object.c二、JVM_Clone三、浅拷贝与深拷贝四、ObjectSynchronizer 1、FastHashCode / identity_hash_value_for2、get_next_hash3、inflate /inflate_helper4、omAlloc /omRelease /omFlush5、InduceScavenge / deflate_idle_monitors/deflate_monitor /walk_monitor原创 2020-03-15 11:04:45 · 937 阅读 · 1 评论 -
Hotspot CMS算法实现总结(四)
1、GenCollectedHeap::do_collection2、CollectedHeap::collect_as_vm_thread3、VM_CollectForMetadataAllocation4、GenCollectedHeap::collect5、mem_allocate_work6、VM_GenCollectForAllocation7、 Debug日志分析原创 2020-03-08 15:45:01 · 513 阅读 · 1 评论 -
Hotspot CMS算法实现总结 (二)
目录一、Young GC1、should_collect2、gc_prologue3、collect4、gc_epilogue二、Old GC2.1should_collect2.2 gc_prologue2.3collect2.4do_mark_sweep_work2.5do_compaction_work2.6gc_epi...原创 2020-03-03 20:26:04 · 1018 阅读 · 0 评论 -
Hotspot CMS算法实现总结(三)
目录1、InitialMarking /checkpointRootsInitialWork2、Marking / markFromRootsWork3、Precleaning /AbortablePreclean /preclean_work4、FinalMarking /checkpointRootsFinalWork5、Sweeping /sweepWo...原创 2020-03-03 20:26:21 · 693 阅读 · 0 评论 -
Hotspot CMS算法实现总结 (一)
目录一、数据结构1、Java堆2、CodeCache3、MetaSpace二、关键类/方法1、oop/Klass2、oop_iterate / adjust_pointers /follow_contents3、ReferenceProcessor4、markOop / promote / forward5、GC_locker 和JNI关键区...原创 2020-03-01 15:41:08 · 1627 阅读 · 1 评论 -
Hotspot 垃圾回收之SafepointSynchronize(二) 源码解析
1、ThreadSafepointState1.1 构造方法 / create /destroy1.2、examine_state_of_thread /restart2、SafepointSynchronize::begin3、SafepointSynchronize::block4、SafepointSynchronize::end原创 2020-02-17 20:28:21 · 1307 阅读 · 0 评论 -
Hotspot 垃圾回收之oop_iterate(二) 源码解析
目录1、java.lang.Class1.1、Class实例中oop_size、klass等属性是哪来的?1.2、_offset_of_static_fields1.3 为什么从_offset_of_static_fields处开始遍历?2、InstanceRefKlass3、ObjArrayKlass4、oopDesc::adjust_pointers /fol...原创 2020-02-15 18:21:12 · 827 阅读 · 0 评论 -
Hotspot 垃圾回收之oop_iterate(一) 源码解析
目录1、oopDesc::oop_iterate/oopDesc::oop_iterate_backwards2、Klass::oop_oop_iterate /Klass::oop_oop_iterate_backwards3、InstanceKlass4、OopMapBlock5、InstanceClassLoaderKlass6、InstanceMirrorKlass原创 2020-02-15 11:00:53 · 1435 阅读 · 4 评论 -
Hotspot 垃圾回收之GenCollectedHeap 源码解析
目录1、定义2、构造方法 / initialize /post_initialize3、do_collection4、do_full_collection5、collect6、VM_GenCollectFullConcurrent /VM_GenCollectFull7、gen_process_roots /gen_process_weak_roots之前...原创 2020-02-12 19:50:40 · 1685 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(四) 源码解析
目录1、PushAndMarkClosure2、SurvivorSpacePrecleanClosure3、MarkRefsIntoAndScanClosure4、ScanMarkedObjectsAgainCarefullyClosure5、PrecleanKlassClosure6、Precleaning 和 AbortablePreclean 总结7、che...原创 2020-02-11 20:26:36 · 781 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(六) 源码解析
目录1、Resizing步骤2、Resetting 步骤3、GenMarkSweep3.1allocate_stacks /deallocate_stacks3.2、mark_sweep_phase13.3、FollowRootClosure3.4、IsAliveClosure /KeepAliveClosure /FollowStackClosure...原创 2020-02-10 21:00:19 · 825 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(五) 源码解析
目录1、CMSParRemarkTask2、Par_MarkRefsIntoAndScanClosure3、Par_PushAndMarkClosure4、RemarkKlassClosure5、MarkFromDirtyCardsClosure6、ScanMarkedObjectsAgainClosure7、FinalMarking 步骤总结8、sweep...原创 2020-02-09 20:44:50 · 589 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(三) 源码解析
目录1、Par_MarkFromRootsClosure2、Par_PushOrMarkClosure3、Par_ConcMarkingClosure4、Marking 总结5、preclean_mod_union_table /preclean_card_table /preclean_klasses6、preclean /abortable_precle...原创 2020-02-07 20:00:56 · 754 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(二) 源码解析
目录1、checkpointRootsInitial2、CMSParMarkTask3、CMSParInitialMarkTask4、Par_MarkRefsIntoClosure5、CLDToOopClosure6、markFromRoots7、CMSConcMarkingTask7.1、work7.2coordinator_yield / re...原创 2020-02-04 18:32:53 · 1044 阅读 · 0 评论 -
Hotspot 垃圾回收之CMSCollector(一) 源码解析
目录1、acquire_control_and_collect2、do_compaction_work3、do_mark_sweep_work4、collect_in_background5、VM_CMS_Operation6、VM_CMS_Initial_Mark /VM_CMS_Final_Remark7、shouldConcurrentCollect...原创 2020-02-03 16:17:35 · 1297 阅读 · 3 评论 -
Hotspot 垃圾回收之ConcurrentMarkSweepGeneration(三) 源码解析
目录1、expand /shrink2、allocate /par_allocate /expand_and_allocate /allocation_limit_reached3、promote /par_promote /par_promote_alloc_done /promotion_attempt_is_safe /promotion_failure_...原创 2020-02-02 14:42:55 · 1892 阅读 · 0 评论 -
Hotspot 垃圾回收之ConcurrentMarkSweepGeneration(二) 源码解析
目录一、ModUnionClosure /ModUnionClosurePar二、CMSIsAliveClosure /CMSParKeepAliveClosure三、CFLS_LAB1、构造方法和modify_initialization2、alloc3、retire4、compute_desired_plab_size四、ConcurrentMarkS...原创 2020-02-01 10:48:27 · 1458 阅读 · 0 评论 -
Hotspot 垃圾回收之ConcurrentMarkSweepThread 源码解析
目录一、ConcurrentGCThread二、SurrogateLockerThread1、make2、loop /manipulatePLL三、ConcurrentMarkSweepThread1、定义2、start和构造方法3、run4、CMSSynchronousYieldRequest/asynchronous_yield_request ...原创 2020-01-31 15:11:44 · 1879 阅读 · 0 评论 -
Hotspot 垃圾回收之ConcurrentMarkSweepGeneration(一) 源码解析
目录 一、CardGeneration1、 构造函数2、expand3、compute_new_size二、CMSBitMap1、构造方法 /allocate2、mark /par_mark /mark_range /par_mark_range /mark_large_range /par_mark_large_range3、is...原创 2020-01-29 17:32:35 · 4073 阅读 · 0 评论 -
Hotspot 垃圾回收之DefNewGeneration(二) 源码解析
目录1、gc_prologue /gc_epilogue2、compute_new_size3、copy_to_survivor_space4、ageTable5、IsAliveClosure /ScanWeakRefClosure / FastKeepAliveClosure6、FastScanClosure /KlassScanClosure /C...原创 2020-01-28 12:01:44 · 1162 阅读 · 0 评论 -
Hotspot 垃圾回收之DefNewGeneration(一) 源码解析
目录一、Generation1、定义2、is_in /space_containing3、block_start /block_size /block_is_obj4、oop_iterate /object_iterate /safe_object_iterate5、prepare_for_compaction /adjust_pointers /...原创 2020-01-27 12:06:52 · 1024 阅读 · 0 评论 -
Hotspot 垃圾回收之ReferenceProcessor(二) 源码解析
目录1、process_discovered_reflist2、process_phaseJNI3、process_discovered_references4、preclean_discovered_references5、clean_up_discovered_references6、abandon_partial_discovery7、总结 本篇博...原创 2020-01-23 15:45:26 · 772 阅读 · 0 评论 -
Hotspot 垃圾回收之ReferenceProcessor(一) 源码解析
目录一、ReferencePolicy1、定义2、LRUMaxHeapPolicy /LRUCurrentHeapPolicy二、DiscoveredList三、DiscoveredListIterator四、ReferenceProcessor1、定义2、referenceProcessor_init / 构造方法3、discover_referenc...原创 2020-01-20 21:28:06 · 1197 阅读 · 0 评论 -
Hotspot 对象引用Reference和Finalizer 源码解析
目录一、Reference1、SoftReference / WeakReference / PhantomReference2、定义3、ReferenceHandler4、Cleaner二、ReferenceQueue1、定义2、enqueue /reallyPoll3、poll /remove4、forEach三、Finalizer1、...原创 2020-01-17 15:34:41 · 729 阅读 · 0 评论 -
Hotspot 垃圾回收之CompactibleFreeListSpace(三) 源码解析
目录1、block_size /block_size_no_stall /block_size_nopar2、oop_iterate /object_iterate /safe_object_iterate /object_iterate_mem /object_iterate_careful_m3、save_marks / promote /oop_since_...原创 2020-01-14 17:11:21 · 973 阅读 · 0 评论 -
Hotspot 垃圾回收之CompactibleFreeListSpace(二) 源码解析
目录1、getChunkFromIndexedFreeList2、getChunkFromSmallLinearAllocBlock3、allocate /par_allocate4、par_get_chunk_of_blocks5、addChunkAndRepairOffsetTable /removeFreeChunkFromFreeLists6、set_en...原创 2020-01-12 22:17:47 · 541 阅读 · 0 评论 -
Hotspot 垃圾回收之CompactibleFreeListSpace(一) 源码解析
目录一、FreeChunk二、PromotionInfo1、SpoolBlock2、PromotedObject3、track4、promoted_oops_iterate5、ensure_spooling_space三、CompactibleFreeListSpace1、定义2、构造方法和set_cms_values3、getFromListGrea...原创 2020-01-12 11:39:41 · 777 阅读 · 1 评论 -
Hotspot 垃圾回收之BlockOffsetArray 源码解析
目录一、BlockOffsetSharedArray1、构造方法2、set_offset_array二、BlockOffsetArray1、定义2、构造方法3、do_block_internal三、BlockOffsetArrayNonContigSpace1、allocated /freed2、alloc_block /mark_block /sp...原创 2020-01-08 20:37:35 · 929 阅读 · 0 评论 -
Hotspot 垃圾回收之EdenSpace 源码解析
目录一、GenSpaceMangler1、定义2、check_mangled_unused_area /check_mangled_unused_area_complete3、mangle_unused_area /mangle_unused_area_complete /mangle_region二、ContiguousSpace1、定义2、构造方法 /...原创 2020-01-05 21:50:09 · 1227 阅读 · 0 评论 -
Hotspot 垃圾回收之CompactibleSpace 源码解析
目录一、Space二、CompactibleSpace1、prepare_for_compaction2、CompactPoint /LiveRange / Prefetch3、adjust_pointers4、compact5、如何获取下一个被标记对象的地址6、对象复制总结在上一篇博客《Hotspot 垃圾回收之CollectorPolicy (二...原创 2020-01-04 22:02:18 · 754 阅读 · 0 评论 -
Hotspot 垃圾回收之CollectorPolicy (二) 源码解析
目录一、GC_locker1、lock_critical /unlock_critical2、check_active_before_gc3、stall_until_clear二、TwoGenerationCollectorPolicy三、ConcurrentMarkSweepPolicy四、ASConcurrentMarkSweepPolicy五、Generat...原创 2020-01-02 18:11:39 · 682 阅读 · 1 评论