Thread history

From User talk:Beaming
Viewing a history listing
Jump to navigation Jump to search
Time User Activity Comment
21:38, 17 October 2017 Beaming (talk | contribs) New reply created (Reply to cpuConstant)
21:03, 17 October 2017 MultiplyByZer0 (talk | contribs) New reply created (Reply to cpuConstant)
15:03, 17 October 2017 Beaming (talk | contribs) New reply created (Reply to cpuConstant)
04:47, 17 October 2017 Xor (talk | contribs) New reply created (Reply to cpuConstant)
04:47, 17 October 2017 Xor (talk | contribs) New reply created (Reply to cpuConstant)
04:34, 17 October 2017 Beaming (talk | contribs) New reply created (Reply to cpuConstant)
04:05, 17 October 2017 Xor (talk | contribs) New reply created (Reply to cpuConstant)
03:46, 17 October 2017 Beaming (talk | contribs) New reply created (Reply to cpuConstant)
03:40, 17 October 2017 Xor (talk | contribs) New reply created (Reply to cpuConstant)
03:37, 17 October 2017 Beaming (talk | contribs) New thread created  

cpuConstant

Hi all, I decided to work on my skipped turns and to watch my execution time. As the first step, I recalculated cpuConstant according to cpuManager code (I wish it would be available from within the robot) at the beginning of each round. Guess what. The number wildly fluctuate. By wildly, we are talkin more than FOUR times!!! On the short end of the spectrum cpuConstant is about 8mS and it can be as large as 35mS.

Any ideas what is going on? Everything is done with openjdk8. One difference from the original code: I measure time with System.nanoTime()

Beaming (talk)03:37, 17 October 2017

Yes with Turbo Boost, CPU speed is not constant ;) And I think every new CPU should have something like that.

Xor (talk)03:40, 17 October 2017

I would expect the cpuConstant go lower as turbo kicks in. But my first run usually gives lower number (faster speed), and consequent executions typically but not always are longer/slower.

In either case it is a problem. Recall recently discussed ThreadDeath issue.

Beaming (talk)03:46, 17 October 2017

Do you relay highly on GC? I mean do you create objects in loops? If the speed gets slower, I can only guess that would be GC.

Xor (talk)04:05, 17 October 2017

Well, I do have many HashMaps and several kdTrees but the fact that Java kicks in with GC at random times is certainly an issue. The init round should be relatively low CPU event on my bot part.

Strange part is that robocode does not report 37 mS long execution as a skipped turn while my "official" cpuConstant is about 6mS.

Beaming (talk)04:34, 17 October 2017

Kd-trees and HashMaps is fast and GC friendly IMO. Did u tried recalculate CPU constant?

Xor (talk)04:47, 17 October 2017
 

You mean the robocode properties file says CPU constant = 6ms?

Xor (talk)04:47, 17 October 2017
 

Robocode gives robots extra time at the beginning of a round. In addition, most of this time is probably taken away by one-time setup and initialization code, making your calculated CPU constant longer than it should be.

MultiplyByZer0 (talk)21:03, 17 October 2017