OptiTick is a quick optimization of one critical part of the World.tick method on the client.
In short, this avoids creating Integer and ChunkCoordIntPair objects where they were most common. This helps keep memory usage down and saves a lot of CPU cycles.
In greater detail, this uses a subset of the "fastutil" Java library to avoid object creation and get a good speed improvement.
It replaces HashMap<Integer,Object> with Int2ObjectOpenHashMap
===Simple Minecraft Error Test===
Starting Minecraft...
Using ShockAhPI r5
16 achievements
151 recipes
OptiFine_1.7.3_HD_F
Wed Aug 03 03:43:51 CDT 2011
OS: Windows Vista (x86) version 6.0
Java: 1.6.0_24, Sun Microsystems Inc.
VM: Java HotSpot(TM) Client VM (mixed mode), Sun Microsystems Inc.
LWJGL: 2.4.2
OpenGL: GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! version 2.1.2, NVIDIA Corporat
ion
OpenGL Version: 2.1
Exception in thread "Minecraft main thread" java.lang.UnsupportedClassVersionErr
or: fd : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at ModLoader.getPrivateValue(ModLoader.java:535)
at ModLoader.init(ModLoader.java:722)
at ModLoader.AddAllRenderers(ModLoader.java:183)
at th.<init>(th.java:60)
at th.<clinit>(th.java:9)
at net.minecraft.client.Minecraft.a(SourceFile:318)
at net.minecraft.client.Minecraft.run(SourceFile:716)
at java.lang.Thread.run(Thread.java:662)
===Simple Minecraft Error Test===
Starting Minecraft...
Using ShockAhPI r5
16 achievements
151 recipes
OptiFine_1.7.3_HD_F
Wed Aug 03 03:43:51 CDT 2011
OS: Windows Vista (x86) version 6.0
Java: 1.6.0_24, Sun Microsystems Inc.
VM: Java HotSpot(TM) Client VM (mixed mode), Sun Microsystems Inc.
LWJGL: 2.4.2
OpenGL: GeForce 6150SE nForce 430/PCI/SSE2/3DNOW! version 2.1.2, NVIDIA Corporat
ion
OpenGL Version: 2.1
Exception in thread "Minecraft main thread" java.lang.UnsupportedClassVersionErr
or: fd : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredFields(Class.java:1743)
at ModLoader.getPrivateValue(ModLoader.java:535)
at ModLoader.init(ModLoader.java:722)
at ModLoader.AddAllRenderers(ModLoader.java:183)
at th.<init>(th.java:60)
at th.<clinit>(th.java:9)
at net.minecraft.client.Minecraft.a(SourceFile:318)
at net.minecraft.client.Minecraft.run(SourceFile:716)
at java.lang.Thread.run(Thread.java:662)
ShockAhPI use fd.class so does this one. You'll need to merge them for it to work
ShockAhPI use fd.class so does this one. You'll need to merge them for it to work
Aether vs Performance... Performance wins. But I still can't use it, even with out the API. I get a black screen through the reg launcher, and errors through a .bat launcher.
Awesome mod, really helps when running Minecraft on a Netbook or slower computer
Rollback Post to RevisionRollBack
I bought an AMD FX-8120 a week after it launched and I have no trouble running games. I had plenty of fun overclocking the thing to 4.6GHz and if you think I made a mistake not buying an Intel, good for you. You may send your "HERP-DERP-WHY-NO-BUY-INTEL-IT-AM-BENCHMARK-FASTER" replies/messages now.
I just tried the 1.0.1(Thanks for fixing the glitch :smile.gif: ) and even though I don't see a huge performance boost(because most of it is coming for OptiFine :tongue.gif:) If I wanted I could now play Minecraft while having multiple programs open :biggrin.gif:
HOLY ****. This PLUS Optifine, I get a constant 100+ FPS. WOW. JUST WOW. Maybe you could add your improvements to the optifine mod so everyone can have the pleasure of enjoying such smooth framerates?
Man I have to say you've made me smile big time.
I loved getting 40-50 FPS with optifine, but yours makes it 100+!!!! Like holy hell.
My first priority today is getting this in a pull request for CraftBukkit. I'll have client and server side patches against MCP and CraftBukkit patches posted in pastebin after that's done.
Nice addition to OptiFine, thank you. Is it the same mechanism as in Tall Grass Lag Fix?
No, but it does affect related logic. That logic is what draws a 144x144(?) cube around every player in minecraft single player and on a minecraft server and randomly updates blocks in those chunks.
Installed fine, anything that will boost performance even a little bit is great for me :biggrin.gif:
I have an old intel integrated card which runs from 60-100fps, beats the 10-20fps on vanilla.
My computer seems so weak against everyone elses :sad.gif: I get like 7 FPS and below on vanilla Normal Fog, SL, and OpenGL. With OptiFine it increases to 20-8 FPS while generating new terrain, 30-15 FPS while playing on already generated terrain, 40+ inside caves.
Edit: OT, I think I removed OptiTick since it made chunks appear slower. I was trapped inside a straight sided box floor.
*What is this?*
OptiTick is a quick optimization of one critical part of the World.tick method on the client.
In short, this avoids creating Integer and ChunkCoordIntPair objects where they were most common. This helps keep memory usage down and saves a lot of CPU cycles.
In greater detail, this uses a subset of the "fastutil" Java library to avoid object creation and get a good speed improvement.
It replaces HashMap<Integer,Object> with Int2ObjectOpenHashMap
ShockAhPI use fd.class so does this one. You'll need to merge them for it to work
Aether vs Performance... Performance wins. But I still can't use it, even with out the API. I get a black screen through the reg launcher, and errors through a .bat launcher.
Version 1.0.1: recompiled with jdk6, added CHANGELOG
I just saw this
So OptiTick might give you 1.8 performance characteristics in minecraft 1.7.3!
This means that MC 1.8 stock just might play nicer with lowspec machines.
Man I have to say you've made me smile big time.
I loved getting 40-50 FPS with optifine, but yours makes it 100+!!!! Like holy hell.
http://dl.dropbox.com/u/2792753/fastutil-6.3-int2obj.jar
The full library is available at:
http://fastutil.dsi.unimi.it/
My first priority today is getting this in a pull request for CraftBukkit. I'll have client and server side patches against MCP and CraftBukkit patches posted in pastebin after that's done.
No, but it does affect related logic. That logic is what draws a 144x144(?) cube around every player in minecraft single player and on a minecraft server and randomly updates blocks in those chunks.
with OptiFine, I can play Vech's Super Hostile Series without SUPER INTENSE LAG!!! :biggrin.gif:
THANK YOUUUU
My computer seems so weak against everyone elses :sad.gif: I get like 7 FPS and below on vanilla Normal Fog, SL, and OpenGL. With OptiFine it increases to 20-8 FPS while generating new terrain, 30-15 FPS while playing on already generated terrain, 40+ inside caves.
Edit: OT, I think I removed OptiTick since it made chunks appear slower. I was trapped inside a straight sided box floor.
Vanilla Minecraft:
With Optitick:
With Optitick + Optifine: