Giter Club home page Giter Club logo

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

Contributors

dtcpatricio avatar

Watchers

 avatar José M. Simão avatar

Forkers

manosanaggh

bda-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.

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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.