View source for Talk:SlowBot

From Robowiki
Jump to navigation Jump to search

Contents

Thread titleRepliesLast modified
Decision Speed Optimisation319:06, 5 May 2013
Speed and energy consumption216:07, 13 March 2013
Vandalism?221:45, 23 November 2012

Decision Speed Optimisation

I was playing around with a speed comparison with manual point-in-field checks to the Rectangle2D.Double.contains(x,y) method, and discovered that if I used && between the booleans I got pretty much exactly the same speed, but if I use & I get double the speed and exactly the same result. I'm guessing this is due to my CPU being able to evaluate multiple boolean expressions simultaneously, but if && is used only one is allowed to be executed at a time, or perhaps & just allows the pipelines to stay more full because there is less branching.

Of course, there are some reasons you might want && instead, like null checking before examining an object property, and && is smaller codesize for those bots that are codesize restricted, but particularly for high-load situations like the inside of precise prediction or play-it-forward loops, using & for your decisions might gain you some speed =)

Skilgannon15:09, 5 May 2013

Nice. This is a kind of optimization that you can't figure out by doing CPU profiling alone.

MN16:10, 5 May 2013
 

That's interesting and is something I didn't know. I don't think there would normally be parallel evaluation going on, so I do think it's the lack of branching and that bit-wise operations are just very simple/fast. I found a couple StackOverflow questions about it too, where people mostly mention branching. [1] [2]

I'm probably in the "not worth the cost to readability" camp, but I know you're a little closer to the "anything for speed" end of the spectrum. :-)

Voidious18:16, 5 May 2013

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:Talk:SlowBot/Decision Speed Optimisation/reply (3).

 
 

Speed and energy consumption

Slow bots doing the same thing as fast bots should consume more energy (hardware power, not robot life) per battle IMHO because of longer CPU usage.

Usually, CPU is in one of two states, active or sleeping. Only sleeping state consumes less energy, and all bots, fast and slow, stay in active state all the time.

MN21:44, 23 November 2012

I don't really care if a robot uses a lot of time. The time allowed is already limited by the Robocode engine, and if Robocode provides the time, I don't see anything wrong with using as much of that time as you want. Of course, it is nicer when a robot runs quickly. Regardless, it is tempting to work on a way to measure the CPU usage of all the robots in the Rumble, as it would be very interesting to see.

Skotty23:55, 12 March 2013
 

I don´t care if a bot is slow either. The way the article was updated, saying the slower the better, is what bothered me.

MN16:07, 13 March 2013
 

Vandalism?

The last edit (before Voidious) looked like vandalism to me.

MN20:53, 23 November 2012

Yeah, I noticed because of your comment... It seemed like a strange thing to vandalize with, though, so I didn't ban him for now.

Voidious21:12, 23 November 2012

From time to time, this kind of vandalism happens in Wikipedia too.

MN21:45, 23 November 2012