Some performance optimizations (#5424)
authorLoïc Blot <nerzhul@users.noreply.github.com>
Wed, 22 Mar 2017 20:41:02 +0000 (21:41 +0100)
committerGitHub <noreply@github.com>
Wed, 22 Mar 2017 20:41:02 +0000 (21:41 +0100)
commit072bbba69aa2528c309b76aaec288bdba52e119c
tree60070fc33757aebdd52c666cdbd3de85fc2e673a
parent9efc5da0fb7d276deff55db6e4eb89d24ca72b5d
Some performance optimizations (#5424)

* Some performance optimizations

This is globally removing some memory useless copy

* use a const ref return on std::string Settings::get to prevent data copy on getters which doesn't need to copy it
 * pass some stack created strings to static const as they are not modified anywhere
 * Camera: return nametags per const ref instead of a list pointer, we only need to read it
 * INodeDefManager: getAll should be a result ref writer instead of a return copy
 * INodeDefManager: getAlias should return a const std::string ref
 * Minimap: unroll a Scolor creation in blitMinimapPixersToImageRadar to prvent many variable construct/destruct which are unneeded (we rewrite the content in the loop)
 * CNodeDefManager::updateAliases: prevent a idef getall copy
 * Profiler: constness
 * rollback_interface: create real_name later, and use const ref
 * MapBlockMesh updateFastFaceRow: unroll TileSpec next_tile, which has a cost of 1.8% CPU due to variable allocation/destruction,
 * MapBlockMesh updateFastFaceRow: copy next_tile to tile only if it's a different tilespec
 * MapBlockMesh updateFastFaceRow: use memcpy to copy next_lights to lights to do it in a single cpu operation
16 files changed:
src/camera.h
src/client/clientlauncher.cpp
src/client/tile.cpp
src/drawscene.cpp
src/game.cpp
src/itemdef.cpp
src/itemdef.h
src/mapblock_mesh.cpp
src/minimap.cpp
src/nodedef.cpp
src/profiler.h
src/remoteplayer.cpp
src/rollback_interface.cpp
src/settings.cpp
src/settings.h
src/sky.h