Skip to content

v0.20 performance increase

Pre-release
Pre-release

Choose a tag to compare

@edt-xx edt-xx released this 10 Sep 21:43
· 72 commits to main since this release
f8f72f7

After lots of perf runs and experiments we found the number of nodes in the main hashes was the main bottleneck that was slowing down rustylife. This release optimizes how nodes are allocated.

Rustylife uses u32 nodeid/arena entries with u64 coordinates. This improves the hashing speed. Performance is maximized when the size of these hashes are minimized. This release uses a smarter algorithm to reuse garbage collected nodeids asap. This can speed up animation of some patterns 20-25%.

game_of_life - is a Linux executable
game_of_life.exe - is for Windows and was tested using wine

Run an executable and connect via a browser to http://localhost:7654 and have fun. You can use the Edit button, then Cntrl+C to copy the following pattern, and Cntrl+V to paste it into rustylife, then press Paste put the pattern onto the board. Use Play to run - it goes for about 126 million generations. Speed and Step control how fast it runs. Left click centers the board - you can also drag using the left mouse button.

#Life 1.05
#N p_126m

5b4o$9bo$9bo$10b2o6$o$o$o10b2obobo2bo$b2o14bobo$b3o8b3o3b2o$b2o8b4obo
2bo$11bobo4bo$17b3o$14bobo2bo$11b2ob3obo$12b3ob4o!