Java-Gaming.org Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (734)
Games in Android Showcase (222)
games submitted by our members
Games in WIP (811)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  [LWJGL] [JOML] Memory Behavior  (Read 486 times)
0 Members and 1 Guest are viewing this topic.
Offline vfmachado

Junior Devvie


Medals: 9
Exp: 4 years



« Posted 2017-08-10 01:26:51 »

Hey guys,

I'm working on my engine... just simple things abour rendering and architecture.

I put everything in a really small scene to investigate possible memory leaks and minor issues related to the code.

I have this strange behavior (at least I think that is) analyzing through VisualVM


http://prntscr.com/g6ljes

When I go to smapler to analyze my variables and how many objects are allocated it seems right except for this:


http://prntscr.com/g6ll0h

Anyone has a similar problem using JOML and LWJGL? Or possible/common problems to result this?

Thank you!!
Offline theagentd
« Reply #1 - Posted 2017-08-10 01:30:55 »

This comes from you allocating a lot of native memory buffers using NIO, possibly using BufferUtils.create***Buffer() calls. All those objects are related to managing native memory, which lies outside the Java memory heap. You should:
 - try to reuse native memory buffers
 - manage native memory yourself instead to avoid GC overhead.

Myomyomyo.
Offline vfmachado

Junior Devvie


Medals: 9
Exp: 4 years



« Reply #2 - Posted 2017-08-10 01:56:04 »

Thanks... I spend some minutes and update all shaders tu reuse the float buffers from Matrix4f instead allocate every time and now seems to be much better

=)



http://prntscr.com/g6lunp
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline gouessej
« Reply #3 - Posted 2017-08-12 08:45:28 »

You can release the memory allocated on the native heap when you no longer need a direct NIO buffer by calling the cleaner yourself, I assume that it's what theagentd meant in his second suggestion.

Julien Gouesse | Personal blog | Website | Jogamp
Offline theagentd
« Reply #4 - Posted 2017-08-12 13:32:40 »

You can release the memory allocated on the native heap when you no longer need a direct NIO buffer by calling the cleaner yourself, I assume that it's what theagentd meant in his second suggestion.
Nope, I'm not a big fan of the Cleaner "hack". You'll generally get much better performance by managing memory yourself with malloc/free. In LWJGL, that can be done with MemoryUtil.memAlloc() and MemoryUtil.memFree(), which under the hood uses the best library for the job (usually Jemalloc).

Myomyomyo.
Pages: [1]
  ignore  |  Print  
 
 

 
cybrmynd (28 views)
2017-08-02 12:28:51

cybrmynd (42 views)
2017-08-02 12:19:43

cybrmynd (56 views)
2017-08-02 12:18:09

Sralse (59 views)
2017-07-25 17:13:48

Archive (489 views)
2017-04-27 17:45:51

buddyBro (637 views)
2017-04-05 03:38:00

CopyableCougar4 (1117 views)
2017-03-24 15:39:42

theagentd (1126 views)
2017-03-24 15:32:08

Rule (1101 views)
2017-03-19 12:43:22

Rule (1078 views)
2017-03-19 12:42:17
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!