I made a raycasting engine and it has some slowdowns. I never had to do profiling before, only step by step debug. I used JProfiler and from what i can understand the problem seem to be waiting/blocked threads. I dont know why this happens. If anyone could take a look at the code and give me some hints i would really appreciate. The code is in english but some comments are still in french (translation in progress). I've tried to make the code as explicit as possible but if there is something you are unsure of ill explain. Im not very familiar with how threads work but i believe everything related to them is in the "control" package. There are a lot of classes so instead of posting the code here ive put everything on github:
https://github.com/Thormind/Raycasting-engine.git
Here is an image of the threads profiling. Outside of that everything else (memory, cpu) seems fine.
Go to the call tree view, record CPU data and set the thread status selector to "Blocking", than you see in which call stacks the blocking occurs.
Detailed analysis of blocking situations is available in the "Monitors & Locks" view section.