Jump to content

Memory leak?


NotGodsArmy666
 Share

Recommended Posts

OK, to begin with. I haven't started to trace the bug yet, I just want to confirm if I am the only one or not.

 

I use MMC 5 to install all mods and handle different instances of MC.

 

I have in MMC set Java up to use up to 768 MB.

 

If I play MC 1.7.2 with any 1.7.2 (any I tried, starting back at some late 900er) forge version and Optifine 1.7.2 HD (no other mod installed at that point) after some time (usually several hours) I recognize that my free ram has significant dropped until it is running out at some point. (which results in a very laggy game play and very low frame rate)

 

So I dunno yet if its caused by minecraft, by optifine, by forge, or by MMC 5.

 

Is it a known bug?

 

If it is: Is there a workaround (other than restart MC)?

 

And why the heck are the forum formatting buttons are currently not working for me? (probably some wired settings in my browser .. which is set up to be so secure it doesn't display any website anymore ;p )

Link to comment
Share on other sites

Memory leaks, if they exist are rather hard to find.

Unless you have a consistant way to reproduce or you know how to debug it yourself we can't help you much.

However, I can say for certian we can not take your report if it involves other mods as there is no way for us to know if it's us or the other mod that would be causing it.

So if you find a way to reliably reproduce {like and action in game that significantly eats ram} and it happens with NO other mods. Then we can take a further look.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to comment
Share on other sites

java, since it has a reasonable garbage collector, normally doesn't suffer much from memory leaks. However, bugs in code that create circular reference dependencies most certain can create such problems. For example: when you do "new Thing1(new BigObject(args))," then normally, minecraft sees when the inner object goes out of scope and frees the memory.

It is possible, though, to store the reference where it never goes out of scope, and keep doing it with more and more. That would gobble memory horribly. IT IS NOT A LEAK. It has simply never gone out of scope. The game still has references to this memory left laying around. If it happens with dimension travel, that might be a good place to nail it down to.

A good place to check is the mojang bug tracker.

Link to comment
Share on other sites

You do realize that thats exactly what causes memory leaks.

Holding references where you shouldn't thus causing the GC to not collect the memory is exactly what a memory leak is.

However, it's fairly hard to debug, unless you have a way to reproduce it.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

Link to comment
Share on other sites

The FTB Team said there is a vanilla bug that caused a memory leak every time you enter a different dimensions.

 

I did ask if they had any more details on this, no reply.

 

Most likely it's the Teleporter class, as that creates (and presumably hangs onto) a number of things like two WorldServers.

Could also be a lot of different things in the world itself, like chunk loading/unloading.

Link to comment
Share on other sites

Really, LexManos.

 

Memory "Leaks" were the hallmark of C and C++ programming. As it's very easy to say alloc() or new() and then just reuse the point later for something else. Since the memory is not free nor is it accessible at any point with any option to reclaimed it, it has leaked. It the java world, memory cannot "leak" the same way. The memory is always accessible unless the user has dome something very unjava-like. Like create an object with a reference to itself. Although, there are garbage collectors that can even detect that and free the lot.

Link to comment
Share on other sites

Generally.. I'd say..  Don't dispute Lex's reasoning, you're usually rewarded with a ban for your efforts :P

 

Anyways, before accusing Forge of performance issues/memory leaks/all those crud, the accepted way is to come to us with a profiler report or something.

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Link to comment
Share on other sites

Memory "Leaks" were the hallmark of C and C++ programming. As it's very easy to say alloc() or new() and then just reuse the point later for something else. Since the memory is not free nor is it accessible at any point with any option to reclaimed it, it has leaked. It the java world, memory cannot "leak" the same way. The memory is always accessible unless the user has dome something very unjava-like. Like create an object with a reference to itself. Although, there are garbage collectors that can even detect that and free the lot.
Please don't try to sound smart. It just makes you sound annoying.

A memory leak is when memory leaks, FOR ANY REASON. If memory *should* of been freed and it hasn't then it has leaked.

Does it have to be explicitly that the programmer did not call free() or that the GC has broken? No, it's just shit is staying around behind it's intended end of life.

Who decides when the memory's EOL is? The programmer, not the program.

So ya, stop being an ass 'Lol java has the garbage collection so its impossible to "leak" memory lolololololol' <~~What you sound like.

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Patreon: http://www.patreon.com/lexmanos
Paypal: http://paypal.me/LexManos

BitCoin: 1Q8rWvUNMM2T1ZfDaFeeYQyVXtYoeT6tTn

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

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I am currently trying to publish my mod. It works fine apart from that, but when publishing following error comes up: Execution failed for task ':publishMavenJavaPublicationToMavenRepository'. > Failed to publish publication 'mavenJava' to repository 'maven' > Invalid publication 'mavenJava': artifactId (AbsolutelyUnbreakable - 1.18.2) is not a valid Maven identifier ([A-Za-z0-9_\-.]+). I don't know what causes this as it definitely used to work completely fine.   I appreciate any help
    • The imgur link shows a memory dump of the crash but it's hard to get a profile of the exact moment of the crash since it happen pretty randomly
    • Im trying to tun a modded forge serve on a google cloud VM, (not the fist time I do this) so when I run the server locally, evererything works ok, but qhen I start the server online on the VM mods are loaded, shown, but they wont work, like i can get nods items from creative but cant place them beacuse they dissapear. The erro that is Shown on logs is like this Missing Datapack Mod:"Mod name"                                      so like that with a few of them
    • okey thanks for leting me know of the dc!
    • Some weeks ago I played Minecraft 1.19.3 with forge 44.1.0,today I changed the version of forge to 44.1.8,and add optifine,then the game crashed. I have tried any older versions of forge,but none of them worked.And I also tried reinstalling Minecraft 1.19.3 or optifine,but they also didn't work.Removing forge is working but I can't use mods so that I can't remove forge.Who knows the solution?Thanks! 😖 Here's the crash report: ---- Minecraft Crash Report ---- // Daisy, daisy... Time: 2023-02-05 16:59:24 Description: Rendering overlay java.lang.NoClassDefFoundError: net/minecraftforge/common/extensions/IForgeModelBaker     at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}     at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:119) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.6.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}     at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:119) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.6.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     at net.minecraft.client.resources.model.ModelBakery.lambda$bakeModels$9(ModelBakery.java:209) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at java.util.HashMap$KeySet.forEach(HashMap.java:1008) ~[?:?] {}     at net.minecraft.client.resources.model.ModelBakery.m_245909_(ModelBakery.java:204) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.resources.model.ModelManager.m_245476_(ModelManager.java:166) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.resources.model.ModelManager.m_246937_(ModelManager.java:89) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:runtimedistcleaner:A}     at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:646) ~[?:?] {}     at java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:483) ~[?:?] {}     at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) ~[?:?] {}     at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) ~[?:?] {}     at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) ~[?:?] {re:computing_frames}     at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) ~[?:?] {re:computing_frames}     at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) ~[?:?] {} Caused by: java.lang.ClassNotFoundException: net.minecraftforge.common.extensions.IForgeModelBaker     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:141) ~[securejarhandler-2.1.6.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     ... 28 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}     at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {}     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:119) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-2.1.6.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-2.1.6.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     at java.lang.ClassLoader.defineClass1(Native Method) ~[?:?] {}     at java.lang.ClassLoader.defineClass(ClassLoader.java:1012) ~[?:?] {} -- Overlay render details -- Details:     Overlay name: net.minecraft.client.gui.screens.LoadingOverlay Stacktrace:     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:1337) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:accesstransformer:B,xf:OptiFine:default}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1135) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:713) ~[client-1.19.3-20221207.122022-srg.jar%23162!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.m_239872_(Main.java:212) ~[1.19.3.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:51) ~[1.19.3.jar:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:27) ~[fmlloader-1.19.3-44.1.8.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.8.jar:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {} -- Last reload -- Details:     Reload number: 1     Reload reason: initial     Finished: No     Packs: vanilla  
  • Topics

×
×
  • Create New...

Important Information

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