bda-hotspot's Introduction
README: This file explains how to compile and run the BDA hotspot VM on a Linux x86_x64 system. Build Instructions: In the hotspot directory there exists a "run" directory. Run the build.script file, with execution permissions in order to build the VM. Some arguments are, however, needed: -buildir <directory where to output the build files> -bootdir <direcotry where a prior instalation of a JVM exists> (for example: /usr/lib/jvm/java-7-openjdk) -mode <product,debug,optimized or clean> (product is a version without assert calls on the code; debug asserts every value --- considerably slower ---, and clean cleans the output directory --- buildir argument. optimized is being deprecated since product already provides everything that optimized did). -debugbin (if debug binaries are wanted) -header (use an additional header word to identify the BDA-region segment of the BDA-heap for an object. -header and -hash cannot be used simultaneously) -hash (use the hashing of the klass pointer to identify the BDA-region segment of the BDA-heap for an object) If no -header or -hash is called, it produces a normal JVM. Run instructions: The build process produces a libjvm.so file. This file should be included (by copying) in another jdk installation or called by the XXaltjvm argument. When the BDA-heap is to be created, such as when built with -header or -hash, the -XX:+UseBDA argument must be passed to the launcher. Note well: A limitation exists when the old generation is shrunk after a full collection (the parallel scavenge collector tries to erase a BDA-region by shrinking below its address). Always use (disable) the -XX:-UseAdaptiveGenerationSizePolicyAtMajorCollection. Examples: When the libjvm.so was not installed on the jdk directory: java -Dsun.java.launcher=gamma -XXaltjvm=`cd /home/xpto/bdahotspot/linux/product/ && pwd` -XX:+UseBDA -XX:-UseAdaptiveGenerationSizePolicyAtMajorCollection <java arguments> When it was installed on the jdk directory: java -XX:+UseBDA -XX:-UseAdaptiveGenerationSizePolicyAtMajorCollection <java arguments) Run-down of the available arguments: -XX:BDAThreshold=<1-100> Set the threshold of the ratio between the highest count of a special object and the lowest count of a special object within a compacting region (used only on the full collection) -XX:BDAKlassHashArray=<integer> Set the size of the array where the hashed klass pointer indexes BDA-region identifiers. Only useful in the -hash configuration.
bda-hotspot's People
Forkers
manosanagghbda-hotspot's Issues
Compaction does not respect object type
The old gen is segmented into regions. There's no respect to this requirement during mark&compact of the old-gen, which also includes the young-space - two rabits with one stone.
StealRegionCompactionTasks not aware of segmented old gen
The steal region compaction tasks, launched/enqueued during the compact() phase are still not aware of the segments in the old region, thus they raise errors in the asserts.
DrainStacksCompactionTasks not aware of segmented old gen
The drain stacks compaction tasks are not aware that the old gen is segmented into smaller spaces, thus some problems occur during the assertions - which are needed to ensure the correct flow of the program. If these assertions are removed, unexpected behaviour of the VM is bound to happen.
The second compaction of the old generation
The second compaction of the old generation throws an error when asserting that all regions are now free. This is due to the fact that these regions were impropely cleared on the previous collection.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.