I am not skipping turns
← Thread:Talk:CPU constant/I am not skipping turns/reply
Yes, I've seen something like this in my profiler. I quickly look at the source, I think the problem is that robocode does not use System.nanoTime to compare times. Instead it using Java to trow exception if wait time is exceeded. It is possible that java treat it as low priority and skips the exception.
I noticed that with similar CPU demand from my bot, I am skipping significantly more against simple/fast bots. Sometimes even 30 turns which causes infamous ThreadDeath. I.e. if i run against Diamond, I see less skipped turns than against a rammer or HawkOnFire. Why is it so I do not understand. But it might be connected to your case.
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page.
Return to Thread:Talk:CPU constant/I am not skipping turns/reply (2).
I tried 1ms Thread.Sleep at the end of each turn. Interestingly enough, sometimes it takes up to 10 ms It was never promised that it will sleep as much as asked, but factor of 10 is just nuts.
I see no significant change in the number of skipped turns.
I still get Thread.Death sometimes against simple/fast bots.
I really wish robocode itself would start garbage collector or at least call tread.sleep
. Recall our discussion where we observe that Thread.Death
disappears when in the GUI we set the desired FPS just a notch below max. I think the only difference that robocode inserts sleep
in the cycle if FPS is below max.