Deathmax/TerrariaAPI-Server — pull request #6 by stevenh (2012-02-21 23:47:40+00:00)
Title: Significantly improved performance of world generation and all world tile operations

While this does increase memory usage the trade off is well worth it given memory is cheep.

Tests on using a small map on a 2.4Ghz Core2 show:-
* Memory usage increased from ~190MB to ~200MB where retail is ~380MB
* World Generation down from ~80 seconds to ~35 seconds where retail is ~20 seconds

TileCollection stats can be enabled by the TILE_DEBUG #define

It may be interesting to note that this should also work without the removal of the
new Tile() assigns in the core code, in fact in theory it should make it even quicker
as the conditional test on the array indexer would be in needed. This could make
updates of future releases easier by reducing the changeset significantly.

Changed world file operations from copies to move's which eliminates unnecessary disk
thrashing for world save and backups