summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorMilian Wolff <mail@milianw.de>2016-01-15 13:06:45 (GMT)
committerStephen Kelly <steveire@gmail.com>2016-01-20 20:20:54 (GMT)
commit275f2a85b21d781e237dd22252261a0a62d9879b (patch)
tree09a6f51209fa99e9be43a985e65bca1cd8a0edcf /Source
parentb8d002af1aeefb435a9560b056f081e5d8dff734 (diff)
downloadCMake-275f2a85b21d781e237dd22252261a0a62d9879b.zip
CMake-275f2a85b21d781e237dd22252261a0a62d9879b.tar.gz
CMake-275f2a85b21d781e237dd22252261a0a62d9879b.tar.bz2
Remove temporary allocations when calling cmGeneratorTarget::GetName.
This happens quite often from within comparisons such as in NamedGeneratorTargetFinder or FindGeneratorTargetImpl. It is the top hotspot of both, number of allocations as well as number of temporary allocations - the majority of calls lead to temporary allocations. In raw numbers, this patch removes ~1E6 temporary allocations of 1.5E6 temporary allocations in total when running the cmake daemon on the KDevelop build dir. That is 2/3 of the total. This hotspot was found with heaptrack.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx2
-rw-r--r--Source/cmGeneratorTarget.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index b05fb41..ff12320 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -335,7 +335,7 @@ cmState::TargetType cmGeneratorTarget::GetType() const
}
//----------------------------------------------------------------------------
-std::string cmGeneratorTarget::GetName() const
+const std::string& cmGeneratorTarget::GetName() const
{
return this->Target->GetName();
}
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index bd23477..d96a32c 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -55,7 +55,7 @@ public:
GetLinkInformation(const std::string& config) const;
cmState::TargetType GetType() const;
- std::string GetName() const;
+ const std::string& GetName() const;
std::string GetExportName() const;
std::vector<std::string> GetPropertyKeys() const;