diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-08-02 14:26:44 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-08-02 14:26:44 +0200 |
commit | f1977a78bebfaab64bcf265cbc9220d55b33cd13 (patch) | |
tree | 4b314286ea947c4c6c139c124d4c2fa0f9037b2a /vespamalloc/src | |
parent | 9690ec8362adfe2c977efb0c77f0147cecb52dd5 (diff) |
Deinline rarely called methods.
Add explicit instantiation declaration for MemBlock.
Diffstat (limited to 'vespamalloc/src')
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/globalpool.h | 5 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/globalpool.hpp | 8 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/memblock.h | 4 | ||||
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/memblock.hpp | 7 |
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; |