version-0-3-1

UHC Chunk Preloader

0.3.1

News: new build for Team Builder and Chunk PreLoader coming soon, documentation preview expected this week, adding border generation option to chunk preloader that does not require world edit.

UHC Chunk Preloader is a plugin that I use for my private games so we do not have to fly around the start of every match. Many people fly around at the beginning of their matches and while this works it has several drawbacks, when the ops fly around they can get an unfair advantage over other players by seeing key features of the environment. This was the start of the mod, I was flying around and seen a jungle temple but I died before getting it :). Flying around is time consuming and isn't perfect, there will be a lot of chunks that do not work.

I have decided to release this with the listed known issues as the benefits for our games have been huge and the known issues just require more RAM for the heap and a server restart after the generation works around the issues.

Other Plugins

UHC Team Builder

Minimum RAM Requirements

Bukkit / Minecraft (haven't determined which yet) has 2-3 memory leaks in the chunk generation and saving of the chunks, this causes the plugin to have specific memory requirements so it is able to finish otherwise the mod will get stuck in a safety loop I have put in waiting for the objects to be dereferenced.

! We are currently running tests on a processor that does double the MIPS then the Q6600 and we are seeing 66-75% improvements on time frames for the plugin to run, so your results may be very different. Give you an example a 2600k runs 3x MIPS then the Q6600. !

All tests were done on my workstation with the test environment on it and the following stats:

  • OS: Windows 7
  • CPU: Core Duo Quad Core, Q6600, 2.4Ghz
  • RAM: 8GB DDR
  • HD: Velociraptor 10k SATA

Bukkit:

  • 1.5.2-R0.1
  • Ultrahardcore 2.4
  • UHC Handler 1.6
  • UHC TeamBuilder 1.0

World

RadiusChunksTime ElapsedXMX Value
50040963min1024M
1000161299min1024M
15003572123min1536M
20006350456min2560M
2500985961h 24min4096M

Nether

RadiusChunksTime ElapsedXMX Value
50040963min1024M
1000161299min1024M
15003572123min1024M
20006350456min2560M
2500985961h 24min4096M

Current Performance of Plugin

Below are the graphs at the current stage of performance, since you can run this plugin before the game giving you the admin as much information as possible for how long you have to run the commands will give the best user experience (these graphs are based on the overworld).

Heap Usage CPU Usage Memory Required to load ChunksTime Required to load Chunks

Usage

Please make sure to follow all the steps.

  1. Start your craftbukkit server with the XMX set to at least the minimum value from the charts above
  2. Make sure there are no players logged in
  3. Type the command /ChunkPreloader world radius 0 0 (world is the name of the world, radius is the size of your radius, 0 0 is the center x,z coordinates you want
    1. Wait until it is finished
  4. Shutdown server
  5. Repeat steps 1-4 for world_nether
  6. Start server and get ready to play

Reload does not clear the memory usage a restart of the java jar is required.

Command

ChunkPreloader [world] [radius] [x] [z] FORCE

I would only recommend running this as the console, every time players have been logged in at some point they get booted by the server (most of the time right away).

  • world, is the name of your world usually this will be world and world_nether
  • radius, how much you want to render
  • x z, the center coordinates you wish to render on
  • FORCE, optional argument forces the plugin to run the command even though it wasn't sent from the console

Known Issues

Memory Leaks

There are three objects that are not being properly dereferenced after the chunks are completely unloaded, this causes the GC not to be able to collect them. Two of them seem to be related to the generation of new chunks, and may even be that one object isn't being dereferenced and cascading to the second object. The third is related to the FileIOThread which seems to be keeping a list of data around after it is needed.

FileIOThread Crash

Below is a screenshot of a FileIOThread crashing, you would think this would be bad, I have not actually seen any negative effects to this. Infact I have seen the opposite (which makes sense). The crash clears up one of the memory leaks, Bukkit/Minecraft starts back up the thread and all the locked heap is still available. If you see any negative effects, please let me know. I suspect once I find a work around for the memory leaks this issue will no longer occur.

FileIOThread Crash

Documentation Archive

Version 0.3.1Version 0.5.2

Comments

Posts Quoted:
Reply
Clear All Quotes