summaryrefslogtreecommitdiffstats
path: root/vespamalloc
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-08-02 14:42:56 +0200
committerGitHub <noreply@github.com>2019-08-02 14:42:56 +0200
commit77e409c8790df9ed6e626b57714ed71770d47d66 (patch)
tree199a699a597620e1f7e597fd0bb71e9f748aad7d /vespamalloc
parent66b3ee08f3fcc0780c71950a23f1d7239f7836f5 (diff)
parentf1977a78bebfaab64bcf265cbc9220d55b33cd13 (diff)
Merge pull request #10169 from vespa-engine/toregge/deinline-rarely-called-methods
Deinline rarely called methods.
Diffstat (limited to 'vespamalloc')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/globalpool.h5
-rw-r--r--vespamalloc/src/vespamalloc/malloc/globalpool.hpp8
-rw-r--r--vespamalloc/src/vespamalloc/malloc/memblock.h4
-rw-r--r--vespamalloc/src/vespamalloc/malloc/memblock.hpp7
4 files changed, 19 insertions, 5 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/globalpool.h b/vespamalloc/src/vespamalloc/malloc/globalpool.h
index 6a05d14a901..bc13231bb85 100644
--- a/vespamalloc/src/vespamalloc/malloc/globalpool.h
+++ b/vespamalloc/src/vespamalloc/malloc/globalpool.h
@@ -27,10 +27,7 @@ public:
DataSegment<MemBlockPtrT> & dataSegment() { return _dataSegment; }
void enableThreadSupport() __attribute__((noinline));
- static void setParams(size_t alwaysReuseLimit, size_t threadCacheLimit) {
- _alwaysReuseLimit = alwaysReuseLimit;
- _threadCacheLimit = threadCacheLimit;
- }
+ static void setParams(size_t alwaysReuseLimit, size_t threadCacheLimit);
void info(FILE * os, size_t level=0) __attribute__((noinline));
private:
diff --git a/vespamalloc/src/vespamalloc/malloc/globalpool.hpp b/vespamalloc/src/vespamalloc/malloc/globalpool.hpp
index 5cc172750c5..c954c1aae26 100644
--- a/vespamalloc/src/vespamalloc/malloc/globalpool.hpp
+++ b/vespamalloc/src/vespamalloc/malloc/globalpool.hpp
@@ -35,6 +35,14 @@ void AllocPoolT<MemBlockPtrT>::enableThreadSupport()
}
template <typename MemBlockPtrT>
+void
+AllocPoolT<MemBlockPtrT>::setParams(size_t alwaysReuseLimit, size_t threadCacheLimit)
+{
+ _alwaysReuseLimit = alwaysReuseLimit;
+ _threadCacheLimit = threadCacheLimit;
+}
+
+template <typename MemBlockPtrT>
typename AllocPoolT<MemBlockPtrT>::ChunkSList *
AllocPoolT<MemBlockPtrT>::getFree(SizeClassT sc)
{
diff --git a/vespamalloc/src/vespamalloc/malloc/memblock.h b/vespamalloc/src/vespamalloc/malloc/memblock.h
index 85dd725749c..118fb0e046c 100644
--- a/vespamalloc/src/vespamalloc/malloc/memblock.h
+++ b/vespamalloc/src/vespamalloc/malloc/memblock.h
@@ -45,7 +45,7 @@ public:
static size_t unAdjustSize(size_t sz) { return sz; }
static void dumpInfo(size_t level);
static void dumpFile(FILE * fp) { _logFile = fp; }
- static void bigBlockLimit(size_t lim) { _bigBlockLimit = lim; }
+ static void bigBlockLimit(size_t lim);
static void setFill(uint8_t ) { }
static bool verifySizeClass(int sc) { (void) sc; return true; }
static size_t getMinSizeForAlignment(size_t align, size_t sz) {
@@ -60,6 +60,8 @@ private:
};
typedef MemBlockT<5, 20> MemBlock;
+template <> void MemBlock::dumpInfo(size_t level);
+extern template class MemBlockT<5, 20>;
}
diff --git a/vespamalloc/src/vespamalloc/malloc/memblock.hpp b/vespamalloc/src/vespamalloc/malloc/memblock.hpp
index e6df3bcc67e..57b5a8cac51 100644
--- a/vespamalloc/src/vespamalloc/malloc/memblock.hpp
+++ b/vespamalloc/src/vespamalloc/malloc/memblock.hpp
@@ -29,6 +29,13 @@ MemBlockT<MinSizeClassC, MaxSizeClassMultiAllocC>::logBigBlock(size_t exact, siz
}
template <size_t MinSizeClassC, size_t MaxSizeClassMultiAllocC>
+void
+MemBlockT<MinSizeClassC, MaxSizeClassMultiAllocC>::bigBlockLimit(size_t lim)
+{
+ _bigBlockLimit = lim;
+}
+
+template <size_t MinSizeClassC, size_t MaxSizeClassMultiAllocC>
FILE * MemBlockT<MinSizeClassC, MaxSizeClassMultiAllocC>::_logFile = stderr;
template <size_t MinSizeClassC, size_t MaxSizeClassMultiAllocC>
size_t MemBlockT<MinSizeClassC, MaxSizeClassMultiAllocC>::_bigBlockLimit = 0x80000000;