mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-26 18:21:04 +00:00
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
This commit is contained in:
parent
9efc5da0fb
commit
072bbba69a
16 changed files with 79 additions and 134 deletions
|
@ -119,39 +119,34 @@ public:
|
|||
u32 minindex, maxindex;
|
||||
paging(m_data.size(), page, pagecount, minindex, maxindex);
|
||||
|
||||
for(std::map<std::string, float>::iterator
|
||||
i = m_data.begin();
|
||||
i != m_data.end(); ++i)
|
||||
{
|
||||
if(maxindex == 0)
|
||||
for (std::map<std::string, float>::const_iterator i = m_data.begin();
|
||||
i != m_data.end(); ++i) {
|
||||
if (maxindex == 0)
|
||||
break;
|
||||
maxindex--;
|
||||
|
||||
if(minindex != 0)
|
||||
{
|
||||
if (minindex != 0) {
|
||||
minindex--;
|
||||
continue;
|
||||
}
|
||||
|
||||
std::string name = i->first;
|
||||
int avgcount = 1;
|
||||
std::map<std::string, int>::iterator n = m_avgcounts.find(name);
|
||||
if(n != m_avgcounts.end()){
|
||||
std::map<std::string, int>::const_iterator n = m_avgcounts.find(i->first);
|
||||
if (n != m_avgcounts.end()) {
|
||||
if(n->second >= 1)
|
||||
avgcount = n->second;
|
||||
}
|
||||
o<<" "<<name<<": ";
|
||||
o << " " << i->first << ": ";
|
||||
s32 clampsize = 40;
|
||||
s32 space = clampsize - name.size();
|
||||
for(s32 j=0; j<space; j++)
|
||||
{
|
||||
if(j%2 == 0 && j < space - 1)
|
||||
o<<"-";
|
||||
s32 space = clampsize - i->first.size();
|
||||
for(s32 j = 0; j < space; j++) {
|
||||
if (j % 2 == 0 && j < space - 1)
|
||||
o << "-";
|
||||
else
|
||||
o<<" ";
|
||||
o << " ";
|
||||
}
|
||||
o<<(i->second / avgcount);
|
||||
o<<std::endl;
|
||||
o << (i->second / avgcount);
|
||||
o << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue