Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 jdk.hotspot.agent.jmod - Hotspot Agent Module
JDK 11 jdk.hotspot.agent.jmod is the JMOD file for JDK 11 Hotspot Agent module.
JDK 11 Hotspot Agent module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.hotspot.agent.jmod.
JDK 11 Hotspot Agent module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Hotspot Agent module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.hotspot.agent.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/jvm/hotspot/gc/cms/CompactibleFreeListSpace.java
/* * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * */ package sun.jvm.hotspot.gc.cms; import java.io.*; import java.util.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.gc.shared.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*; import sun.jvm.hotspot.types.*; import sun.jvm.hotspot.utilities.*; public class CompactibleFreeListSpace extends CompactibleSpace { private static AddressField collectorField; private static AddressField indexedFreeListField; private static AddressField dictionaryField; private static long smallLinearAllocBlockFieldOffset; private int heapWordSize; // 4 for 32bit, 8 for 64 bits private int IndexSetStart; // for small indexed list private int IndexSetSize; private int IndexSetStride; private static long MinChunkSizeInBytes; static { VM.registerVMInitializedObserver(new Observer() { public void update(Observable o, Object data) { initialize(VM.getVM().getTypeDataBase()); } }); } private static synchronized void initialize(TypeDataBase db) { long sizeofFreeChunk = db.lookupType("FreeChunk").getSize(); VM vm = VM.getVM(); Type type = db.lookupType("CompactibleFreeListSpace"); collectorField = type.getAddressField("_collector"); collectorField = type.getAddressField("_collector"); dictionaryField = type.getAddressField("_dictionary"); indexedFreeListField = type.getAddressField("_indexedFreeList[0]"); smallLinearAllocBlockFieldOffset = type.getField("_smallLinearAllocBlock").getOffset(); MinChunkSizeInBytes = (type.getCIntegerField("_min_chunk_size_in_bytes")).getValue(); } public CompactibleFreeListSpace(Address addr) { super(addr); VM vm = VM.getVM(); heapWordSize = vm.getHeapWordSize(); IndexSetStart = vm.getMinObjAlignmentInBytes() / heapWordSize; IndexSetStride = IndexSetStart; IndexSetSize = vm.getIndexSetSize(); } // Accessing block offset table public CMSCollector collector() { return (CMSCollector) VMObjectFactory.newObject( CMSCollector.class, collectorField.getValue(addr)); } public long free0() { return capacity() - used0(); } public long used() { return capacity() - free(); } public long used0() { List regions = getLiveRegions(); long usedSize = 0L; for (Iterator itr = regions.iterator(); itr.hasNext();) { MemRegion mr = (MemRegion) itr.next(); usedSize += mr.byteSize(); } return usedSize; } public long free() { // small chunks long size = 0; Address cur = addr.addOffsetTo( indexedFreeListField.getOffset() ); cur = cur.addOffsetTo(IndexSetStart*AdaptiveFreeList.sizeOf()); for (int i=IndexSetStart; i<IndexSetSize; i += IndexSetStride) { AdaptiveFreeList freeList = (AdaptiveFreeList) VMObjectFactory.newObject(AdaptiveFreeList.class, cur); size += i*freeList.count(); cur= cur.addOffsetTo(IndexSetStride*AdaptiveFreeList.sizeOf()); } // large block AFLBinaryTreeDictionary aflbd = (AFLBinaryTreeDictionary) VMObjectFactory.newObject(AFLBinaryTreeDictionary.class, dictionaryField.getValue(addr)); size += aflbd.size(); // linear block in TLAB LinearAllocBlock lab = (LinearAllocBlock) VMObjectFactory.newObject(LinearAllocBlock.class, addr.addOffsetTo(smallLinearAllocBlockFieldOffset)); size += lab.word_size(); return size*heapWordSize; } public void printOn(PrintStream tty) { tty.print("free-list-space"); tty.print("[ " + bottom() + " , " + end() + " ) "); long cap = capacity(); long used_size = used(); long free_size = free(); int used_perc = (int)((double)used_size/cap*100); tty.print("space capacity = " + cap + " used(" + used_perc + "%)= " + used_size + " "); tty.print("free= " + free_size ); tty.print("\n"); } public Address skipBlockSizeUsingPrintezisBits(Address pos) { CMSCollector collector = collector(); long size = 0; Address addr = null; if (collector != null) { size = collector.blockSizeUsingPrintezisBits(pos); if (size >= 3) { addr = pos.addOffsetTo(adjustObjectSizeInBytes(size)); } } return addr; } public List/*<MemRegion>*/ getLiveRegions() { List res = new ArrayList(); // List<MemRegion> VM vm = VM.getVM(); Debugger dbg = vm.getDebugger(); ObjectHeap heap = vm.getObjectHeap(); Address cur = bottom(); Address regionStart = cur; Address limit = end(); final long addressSize = vm.getAddressSize(); for (; cur.lessThan(limit);) { Address k = cur.getAddressAt(addressSize); if (FreeChunk.indicatesFreeChunk(cur)) { if (! cur.equals(regionStart)) { res.add(new MemRegion(regionStart, cur)); } FreeChunk fc = (FreeChunk) VMObjectFactory.newObject(FreeChunk.class, cur); long chunkSize = fc.size(); if (Assert.ASSERTS_ENABLED) { Assert.that(chunkSize > 0, "invalid FreeChunk size"); } // note that fc.size() gives chunk size in heap words cur = cur.addOffsetTo(chunkSize * addressSize); regionStart = cur; } else if (k != null) { Oop obj = heap.newOop(cur.addOffsetToAsOopHandle(0)); long objectSize = obj.getObjectSize(); cur = cur.addOffsetTo(adjustObjectSizeInBytes(objectSize)); } else { // FIXME: need to do a better job here. // can I use bitMap here? //Find the object size using Printezis bits and skip over long size = collector().blockSizeUsingPrintezisBits(cur); if (size == -1) { break; } cur = cur.addOffsetTo(adjustObjectSizeInBytes(size)); } } return res; } //-- Internals only below this point // Unlike corresponding VM code, we operate on byte size rather than // HeapWord size for convenience. public static long adjustObjectSizeInBytes(long sizeInBytes) { return Oop.alignObjectSize(Math.max(sizeInBytes, MinChunkSizeInBytes)); } }
⏎ sun/jvm/hotspot/gc/cms/CompactibleFreeListSpace.java
Or download all of them as a single archive file:
File name: jdk.hotspot.agent-11.0.1-src.zip File size: 1243786 bytes Release date: 2018-11-04 Download
⇒ JDK 11 jdk.httpserver.jmod - HTTP Server Module
2020-02-29, 101475👍, 0💬
Popular Posts:
How to download and install ojdbc7.jar for Oracle 12c R1? ojdbc8.jar for Oracle 12c R1 is a Java 7 a...
What Is poi-3.5.jar - Part 2? poi-3.5.jar is one of the JAR files for Apache POI 3.5, which provides...
JDK 11 jdk.crypto.cryptoki.jmod is the JMOD file for JDK 11 Crypto Cryptoki module. JDK 11 Crypto KI...
What JAR files are required to run dom\Writer.java provided in the Apache Xerces package? 3 JAR file...
Apache Avalon began in 1999 as the Java Apache Server Framework and in late 2002 separated from the ...