?
=?ISO-8859-1?Q?Andreas_R=F8sdal?=
Hi,
I'm using the Python profiler to optimize a pathfinding algorithm of a
game, and would like some help from someone who knows how to improve the
performance of Python code. The algorithm is A-Star, and it works
correctly. However, the interface that I made between the A-Star
pathfinding algorithm and the map data structure is what I've found to be
a bottle-neck so far.
As a start, I'd like to optimize the methods with the highest cumulative
time spent using CPU, which are the ones on the top of the profiling
out-put attached below (get_tile_adjacent etc.)
So are you able to spot any solutions to improving the performance of the
methods which I've indentified as bottlenecks here?
Thanks in advance!
Andreas R.
The source code of the main faile is here:
http://svn.gna.org/viewcvs/openrts/trunk/openrts/common/map.py?rev=89&view=markup
Profiling output is here:
ncalls tottime percall cumtime percall filename:lineno(function)
/home/andreas/openrts/openrts/openrts/common/map.py:190(get_tile_adjacent)
162002 0.680 0.000 0.680 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:56(get_tile)
129600 0.570 0.000 0.570 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:217(wrap_map_pos)
129837 0.480 0.000 0.480 0.000 :0(append)
8100 0.190 0.000 0.430 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:253(get_tile_height_pos)
8100 0.080 0.000 0.270 0.000
/usr/lib/python2.4/random.py:213(randint)
8100 0.160 0.000 0.190 0.000
/usr/lib/python2.4/random.py:149(randrange)
1 0.000 0.000 0.170 0.170
/home/andreas/openrts/openrts/openrts/common/map.py:26(__init__)
1 0.070 0.070 0.170 0.170
/home/andreas/openrts/openrts/openrts/common/map.py:32(init_map)
8100 0.080 0.000 0.110 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:234(get_tile_height)
I'm using the Python profiler to optimize a pathfinding algorithm of a
game, and would like some help from someone who knows how to improve the
performance of Python code. The algorithm is A-Star, and it works
correctly. However, the interface that I made between the A-Star
pathfinding algorithm and the map data structure is what I've found to be
a bottle-neck so far.
As a start, I'd like to optimize the methods with the highest cumulative
time spent using CPU, which are the ones on the top of the profiling
out-put attached below (get_tile_adjacent etc.)
So are you able to spot any solutions to improving the performance of the
methods which I've indentified as bottlenecks here?
Thanks in advance!
Andreas R.
The source code of the main faile is here:
http://svn.gna.org/viewcvs/openrts/trunk/openrts/common/map.py?rev=89&view=markup
Profiling output is here:
ncalls tottime percall cumtime percall filename:lineno(function)
/home/andreas/openrts/openrts/openrts/common/map.py:190(get_tile_adjacent)
162002 0.680 0.000 0.680 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:56(get_tile)
129600 0.570 0.000 0.570 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:217(wrap_map_pos)
129837 0.480 0.000 0.480 0.000 :0(append)
8100 0.190 0.000 0.430 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:253(get_tile_height_pos)
8100 0.080 0.000 0.270 0.000
/usr/lib/python2.4/random.py:213(randint)
8100 0.160 0.000 0.190 0.000
/usr/lib/python2.4/random.py:149(randrange)
1 0.000 0.000 0.170 0.170
/home/andreas/openrts/openrts/openrts/common/map.py:26(__init__)
1 0.070 0.070 0.170 0.170
/home/andreas/openrts/openrts/openrts/common/map.py:32(init_map)
8100 0.080 0.000 0.110 0.000
/home/andreas/openrts/openrts/openrts/common/map.py:234(get_tile_height)