Jump to content

[1.6.4]Performace/Memory leak when generating chunks?


ManIkWeet

Recommended Posts

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  ???

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.