I wonder if I am doing something wrong or if this is a vanilla issue:
I made a command that randomly generates 100 areas of 12x12 chunks, the more areas are made, the longer is takes to make an area?
Perfect copy+paste to try it yourself:
@EventHandler
public void serverLoad(FMLServerStartingEvent event) {
event.registerServerCommand(new RandomGenerateCommand());
}
class RandomGenerateCommand implements ICommand {
private final List aliases;
public RandomGenerateCommand() {
this.aliases = new ArrayList();
this.aliases.add("rgen");
this.aliases.add("randomgenerate");
}
@Override
public String getCommandName() {
return "randomgenerate";
}
@Override
public String getCommandUsage(ICommandSender icommandsender) {
return "/randomgenerate";
}
@Override
public List getCommandAliases() {
return this.aliases;
}
@Override
public void processCommand(ICommandSender icommandsender, String[] astring) {
World worldObj = null;// = Minecraft.getMinecraft().theWorld;
for (WorldServer ws : MinecraftServer.getServer().worldServers) {
if (ws.provider.getDimensionName().equals("Overworld")) {
worldObj = ws;
break;
}
}
if (worldObj != null && worldObj.getChunkProvider() instanceof ChunkProviderServer) {
ChunkProviderServer cps = (ChunkProviderServer) worldObj.getChunkProvider();
Random r = new Random();
for (int loops = 0; loops < 100; loops++) { //lets generate 100 random chunk areas of 12x12
int randomX = r.nextInt(5000) >> 4;
int randomZ = r.nextInt(5000) >> 4;
List<Chunk> chunks = new ArrayList();
long startTime = System.currentTimeMillis();
for (int i = -1; i < 12; i++) {//-1 to make sure the 12x12 area is completely populated with trees/ores/etc
for (int j = -1; j < 12; j++) {//-1 to make sure the 12x12 area is completely populated with trees/ores/etc
Chunk chunk = worldObj.getChunkProvider().loadChunk(randomX + i, randomZ + j);
chunks.add(chunk);
}
}
for (Chunk c : chunks) {
cps.unloadChunksIfNotNearSpawn(c.xPosition, c.zPosition);
}
cps.unloadQueuedChunks();
cps.unloadQueuedChunks();//unload twice because default minecraft has a limit of 100 chunks
System.out.println("Done " + (loops + 1) + " out of 100 iterations of 12x12 chunk areas, took " + (((double) System.currentTimeMillis() - (double) startTime) / 1000d) + " seconds!");
}
}
}
@Override
public boolean canCommandSenderUseCommand(ICommandSender icommandsender) {
return true;
}
@Override
public List addTabCompletionOptions(ICommandSender icommandsender, String[] astring) {
return null;
}
@Override
public boolean isUsernameIndex(String[] astring, int i) {
return false;
}
@Override
public int compareTo(Object o) {
return 0;
}
}
Just throw it at the bottom of a default mod main file, and get the imports
An example output that I keep getting:
2014-06-13 12:35:27 [iNFO] [sTDOUT] Done 1 out of 100 iterations of 12x12 chunk areas, took 3.017 seconds!
2014-06-13 12:35:30 [iNFO] [sTDOUT] Done 2 out of 100 iterations of 12x12 chunk areas, took 3.662 seconds!
2014-06-13 12:35:34 [iNFO] [sTDOUT] Done 3 out of 100 iterations of 12x12 chunk areas, took 3.331 seconds!
2014-06-13 12:35:39 [iNFO] [sTDOUT] Done 4 out of 100 iterations of 12x12 chunk areas, took 5.328 seconds!
2014-06-13 12:35:44 [iNFO] [sTDOUT] Done 5 out of 100 iterations of 12x12 chunk areas, took 4.681 seconds!
2014-06-13 12:35:49 [iNFO] [sTDOUT] Done 6 out of 100 iterations of 12x12 chunk areas, took 5.419 seconds!
2014-06-13 12:35:54 [iNFO] [sTDOUT] Done 7 out of 100 iterations of 12x12 chunk areas, took 5.114 seconds!
2014-06-13 12:36:00 [iNFO] [sTDOUT] Done 8 out of 100 iterations of 12x12 chunk areas, took 5.776 seconds!
2014-06-13 12:36:06 [iNFO] [sTDOUT] Done 9 out of 100 iterations of 12x12 chunk areas, took 6.266 seconds!
2014-06-13 12:36:13 [iNFO] [sTDOUT] Done 10 out of 100 iterations of 12x12 chunk areas, took 6.909 seconds!
2014-06-13 12:36:21 [iNFO] [sTDOUT] Done 11 out of 100 iterations of 12x12 chunk areas, took 7.489 seconds!
2014-06-13 12:36:28 [iNFO] [sTDOUT] Done 12 out of 100 iterations of 12x12 chunk areas, took 7.517 seconds!
2014-06-13 12:36:36 [iNFO] [sTDOUT] Done 13 out of 100 iterations of 12x12 chunk areas, took 8.09 seconds!
2014-06-13 12:36:45 [iNFO] [sTDOUT] Done 14 out of 100 iterations of 12x12 chunk areas, took 8.892 seconds!
2014-06-13 12:36:55 [iNFO] [sTDOUT] Done 15 out of 100 iterations of 12x12 chunk areas, took 9.447 seconds!
2014-06-13 12:37:06 [iNFO] [sTDOUT] Done 16 out of 100 iterations of 12x12 chunk areas, took 11.165 seconds!
2014-06-13 12:37:16 [iNFO] [sTDOUT] Done 17 out of 100 iterations of 12x12 chunk areas, took 10.264 seconds!
2014-06-13 12:37:27 [iNFO] [sTDOUT] Done 18 out of 100 iterations of 12x12 chunk areas, took 10.723 seconds!
2014-06-13 12:37:38 [iNFO] [sTDOUT] Done 19 out of 100 iterations of 12x12 chunk areas, took 11.193 seconds!
2014-06-13 12:37:50 [iNFO] [sTDOUT] Done 20 out of 100 iterations of 12x12 chunk areas, took 11.688 seconds!
2014-06-13 12:38:01 [iNFO] [sTDOUT] Done 21 out of 100 iterations of 12x12 chunk areas, took 11.085 seconds!
2014-06-13 12:38:12 [iNFO] [sTDOUT] Done 22 out of 100 iterations of 12x12 chunk areas, took 11.476 seconds!
2014-06-13 12:38:24 [iNFO] [sTDOUT] Done 23 out of 100 iterations of 12x12 chunk areas, took 11.779 seconds!
2014-06-13 12:38:37 [iNFO] [sTDOUT] Done 24 out of 100 iterations of 12x12 chunk areas, took 12.761 seconds!
2014-06-13 12:38:49 [iNFO] [sTDOUT] Done 25 out of 100 iterations of 12x12 chunk areas, took 12.609 seconds!
2014-06-13 12:39:02 [iNFO] [sTDOUT] Done 26 out of 100 iterations of 12x12 chunk areas, took 12.666 seconds!
2014-06-13 12:39:15 [iNFO] [sTDOUT] Done 27 out of 100 iterations of 12x12 chunk areas, took 12.811 seconds!
2014-06-13 12:39:28 [iNFO] [sTDOUT] Done 28 out of 100 iterations of 12x12 chunk areas, took 13.095 seconds!
2014-06-13 12:39:42 [iNFO] [sTDOUT] Done 29 out of 100 iterations of 12x12 chunk areas, took 13.594 seconds!
2014-06-13 12:39:55 [iNFO] [sTDOUT] Done 30 out of 100 iterations of 12x12 chunk areas, took 13.82 seconds!
2014-06-13 12:40:10 [iNFO] [sTDOUT] Done 31 out of 100 iterations of 12x12 chunk areas, took 14.903 seconds!
2014-06-13 12:40:24 [iNFO] [sTDOUT] Done 32 out of 100 iterations of 12x12 chunk areas, took 13.493 seconds!
2014-06-13 12:40:38 [iNFO] [sTDOUT] Done 33 out of 100 iterations of 12x12 chunk areas, took 13.975 seconds!
2014-06-13 12:40:52 [iNFO] [sTDOUT] Done 34 out of 100 iterations of 12x12 chunk areas, took 13.926 seconds!
2014-06-13 12:41:06 [iNFO] [sTDOUT] Done 35 out of 100 iterations of 12x12 chunk areas, took 14.261 seconds!
2014-06-13 12:41:21 [iNFO] [sTDOUT] Done 36 out of 100 iterations of 12x12 chunk areas, took 14.7 seconds!
2014-06-13 12:41:35 [iNFO] [sTDOUT] Done 37 out of 100 iterations of 12x12 chunk areas, took 14.727 seconds!
2014-06-13 12:41:51 [iNFO] [sTDOUT] Done 38 out of 100 iterations of 12x12 chunk areas, took 15.55 seconds!
2014-06-13 12:42:08 [iNFO] [sTDOUT] Done 39 out of 100 iterations of 12x12 chunk areas, took 16.707 seconds!
2014-06-13 12:42:25 [iNFO] [sTDOUT] Done 40 out of 100 iterations of 12x12 chunk areas, took 17.356 seconds!
2014-06-13 12:42:43 [iNFO] [sTDOUT] Done 41 out of 100 iterations of 12x12 chunk areas, took 18.202 seconds!
2014-06-13 12:43:02 [iNFO] [sTDOUT] Done 42 out of 100 iterations of 12x12 chunk areas, took 18.464 seconds!
2014-06-13 12:43:20 [iNFO] [sTDOUT] Done 43 out of 100 iterations of 12x12 chunk areas, took 18.743 seconds!
2014-06-13 12:43:40 [iNFO] [sTDOUT] Done 44 out of 100 iterations of 12x12 chunk areas, took 19.21 seconds!
So either I am overlooking something or vanilla minecraft has a serious leak when it comes to generating chunks...
Please enlighten me