From ea0a3a4bf611c9c25973755e4f8a0cebd4869c5a Mon Sep 17 00:00:00 2001 From: mutouyun Date: Sun, 26 Jan 2025 10:33:19 +0800 Subject: [PATCH] libipc/memory/resource.h => libipc/mem/resource.h --- src/libipc/ipc.cpp | 2 +- src/libipc/{memory => mem}/resource.h | 0 src/libipc/platform/linux/mutex.h | 2 +- src/libipc/platform/posix/mutex.h | 2 +- src/libipc/platform/posix/shm_posix.cpp | 2 +- src/libipc/platform/win/shm_win.cpp | 2 +- src/libipc/platform/win/to_tchar.h | 2 +- src/libipc/pool_alloc.cpp | 2 +- src/libipc/queue.h | 2 +- src/libipc/shm.cpp | 2 +- src/libipc/sync/condition.cpp | 2 +- src/libipc/sync/mutex.cpp | 2 +- src/libipc/sync/semaphore.cpp | 2 +- test/test_ipc.cpp | 2 +- test/test_mem.cpp | 218 ------------------------ 15 files changed, 13 insertions(+), 231 deletions(-) rename src/libipc/{memory => mem}/resource.h (100%) delete mode 100755 test/test_mem.cpp diff --git a/src/libipc/ipc.cpp b/src/libipc/ipc.cpp index 514ed2a..2b8ed35 100755 --- a/src/libipc/ipc.cpp +++ b/src/libipc/ipc.cpp @@ -25,7 +25,7 @@ #include "libipc/utility/scope_guard.h" #include "libipc/utility/utility.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/platform/detail.h" #include "libipc/circ/elem_array.h" diff --git a/src/libipc/memory/resource.h b/src/libipc/mem/resource.h similarity index 100% rename from src/libipc/memory/resource.h rename to src/libipc/mem/resource.h diff --git a/src/libipc/platform/linux/mutex.h b/src/libipc/platform/linux/mutex.h index f283e27..6dd7ca3 100644 --- a/src/libipc/platform/linux/mutex.h +++ b/src/libipc/platform/linux/mutex.h @@ -7,7 +7,7 @@ #include "libipc/platform/detail.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/shm.h" #include "get_wait_time.h" diff --git a/src/libipc/platform/posix/mutex.h b/src/libipc/platform/posix/mutex.h index bdb15c4..12679be 100644 --- a/src/libipc/platform/posix/mutex.h +++ b/src/libipc/platform/posix/mutex.h @@ -12,7 +12,7 @@ #include "libipc/platform/detail.h" #include "libipc/utility/log.h" #include "libipc/utility/scope_guard.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/shm.h" #include "get_wait_time.h" diff --git a/src/libipc/platform/posix/shm_posix.cpp b/src/libipc/platform/posix/shm_posix.cpp index a5ac7b5..7221d05 100644 --- a/src/libipc/platform/posix/shm_posix.cpp +++ b/src/libipc/platform/posix/shm_posix.cpp @@ -16,7 +16,7 @@ #include "libipc/pool_alloc.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" namespace { diff --git a/src/libipc/platform/win/shm_win.cpp b/src/libipc/platform/win/shm_win.cpp index b19245f..7942a62 100755 --- a/src/libipc/platform/win/shm_win.cpp +++ b/src/libipc/platform/win/shm_win.cpp @@ -9,7 +9,7 @@ #include "libipc/pool_alloc.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "to_tchar.h" #include "get_sa.h" diff --git a/src/libipc/platform/win/to_tchar.h b/src/libipc/platform/win/to_tchar.h index c59beae..d557f6c 100755 --- a/src/libipc/platform/win/to_tchar.h +++ b/src/libipc/platform/win/to_tchar.h @@ -11,7 +11,7 @@ #include #include "libipc/utility/concept.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/platform/detail.h" namespace ipc { diff --git a/src/libipc/pool_alloc.cpp b/src/libipc/pool_alloc.cpp index 9824df9..b84e73b 100755 --- a/src/libipc/pool_alloc.cpp +++ b/src/libipc/pool_alloc.cpp @@ -1,6 +1,6 @@ #include "libipc/pool_alloc.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" namespace ipc { namespace mem { diff --git a/src/libipc/queue.h b/src/libipc/queue.h index 71dc170..343454b 100755 --- a/src/libipc/queue.h +++ b/src/libipc/queue.h @@ -18,7 +18,7 @@ #include "libipc/utility/log.h" #include "libipc/platform/detail.h" #include "libipc/circ/elem_def.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" namespace ipc { namespace detail { diff --git a/src/libipc/shm.cpp b/src/libipc/shm.cpp index ecf4ac0..40a374e 100755 --- a/src/libipc/shm.cpp +++ b/src/libipc/shm.cpp @@ -6,7 +6,7 @@ #include "libipc/utility/pimpl.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" namespace ipc { namespace shm { diff --git a/src/libipc/sync/condition.cpp b/src/libipc/sync/condition.cpp index dbb5745..c6afccb 100644 --- a/src/libipc/sync/condition.cpp +++ b/src/libipc/sync/condition.cpp @@ -3,7 +3,7 @@ #include "libipc/utility/pimpl.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/platform/detail.h" #if defined(LIBIPC_OS_WIN) #include "libipc/platform/win/condition.h" diff --git a/src/libipc/sync/mutex.cpp b/src/libipc/sync/mutex.cpp index 3e1c3fe..aa7fc08 100644 --- a/src/libipc/sync/mutex.cpp +++ b/src/libipc/sync/mutex.cpp @@ -3,7 +3,7 @@ #include "libipc/utility/pimpl.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/platform/detail.h" #if defined(LIBIPC_OS_WIN) #include "libipc/platform/win/mutex.h" diff --git a/src/libipc/sync/semaphore.cpp b/src/libipc/sync/semaphore.cpp index 42f78ae..29665c8 100644 --- a/src/libipc/sync/semaphore.cpp +++ b/src/libipc/sync/semaphore.cpp @@ -3,7 +3,7 @@ #include "libipc/utility/pimpl.h" #include "libipc/utility/log.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "libipc/platform/detail.h" #if defined(LIBIPC_OS_WIN) #include "libipc/platform/win/semaphore.h" diff --git a/test/test_ipc.cpp b/test/test_ipc.cpp index 5bd828b..a482fcb 100755 --- a/test/test_ipc.cpp +++ b/test/test_ipc.cpp @@ -7,7 +7,7 @@ #include "libipc/ipc.h" #include "libipc/buffer.h" -#include "libipc/memory/resource.h" +#include "libipc/mem/resource.h" #include "test.h" #include "thread_pool.h" diff --git a/test/test_mem.cpp b/test/test_mem.cpp deleted file mode 100755 index 16a5ad1..0000000 --- a/test/test_mem.cpp +++ /dev/null @@ -1,218 +0,0 @@ -#include -#include -#include -#include -#include - -#include "capo/random.hpp" - -#include "libipc/memory/resource.h" -#include "libipc/pool_alloc.h" - -// #include "gperftools/tcmalloc.h" - -#include "test.h" -#include "thread_pool.h" - -namespace { - -constexpr int DataMin = 4; -constexpr int DataMax = 256; -constexpr int LoopCount = 8388608; -constexpr int ThreadMax = 8; - -// constexpr int DataMin = 256; -// constexpr int DataMax = 512; -// constexpr int LoopCount = 2097152; - -std::vector sizes__; -std::vector ptr_cache__[ThreadMax]; - -template -struct alloc_ix_t { - static std::vector ix_; - static bool inited_; - - alloc_ix_t() { - if (inited_) return; - inited_ = true; - M::init(); - } - - template - static int index(std::size_t /*pid*/, std::size_t /*k*/, std::size_t n) { - return ix_[n]; - } -}; - -template -std::vector alloc_ix_t::ix_(LoopCount); -template -bool alloc_ix_t::inited_ = false; - -struct alloc_FIFO : alloc_ix_t { - static void init() { - for (int i = 0; i < LoopCount; ++i) { - ix_[static_cast(i)] = i; - } - } -}; - -struct alloc_LIFO : alloc_ix_t { - static void init() { - for (int i = 0; i < LoopCount; ++i) { - ix_[static_cast(i)] = i; - } - } - - template - static int index(std::size_t pid, std::size_t k, std::size_t n) { - constexpr static int CacheSize = LoopCount / ThreadsN; - if (k) { - return ix_[(CacheSize * (2 * pid + 1)) - 1 - n]; - } - else return ix_[n]; - } -}; - -struct alloc_Random : alloc_ix_t { - static void init() { - capo::random<> rdm_index(0, LoopCount - 1); - for (int i = 0; i < LoopCount; ++i) { - ix_[static_cast(i)] = rdm_index(); - } - } -}; - -struct Init { - Init() { - capo::random<> rdm{ DataMin, DataMax }; - for (int i = 0; i < LoopCount; ++i) { - sizes__.emplace_back(static_cast(rdm())); - } - for (auto& vec : ptr_cache__) { - vec.resize(LoopCount, nullptr); - } - } -} init__; - -template -void benchmark_alloc(char const * message) { - std::string msg = std::to_string(ThreadsN) + "\t" + message; - - constexpr static int CacheSize = LoopCount / ThreadsN; - ipc_ut::sender().start(static_cast(ThreadsN)); - ipc_ut::test_stopwatch sw; - - for (int pid = 0; pid < ThreadsN; ++pid) { - ipc_ut::sender() << [&, pid] { - sw.start(); - for (int n = (CacheSize * pid); n < (CacheSize * (pid + 1)); ++n) { - std::size_t s = sizes__[n]; - AllocT::free(AllocT::alloc(s), s); - } - }; - } - - ipc_ut::sender().wait_for_done(); - sw.print_elapsed<1>(DataMin, DataMax, LoopCount, msg.c_str()); -} - -template -void benchmark_alloc(char const * message) { - std::string msg = std::to_string(ThreadsN) + "\t" + message; - - constexpr static int CacheSize = LoopCount / ThreadsN; - ModeT mode; - ipc_ut::sender().start(static_cast(ThreadsN)); - ipc_ut::test_stopwatch sw; - - for (int pid = 0; pid < ThreadsN; ++pid) { - ipc_ut::sender() << [&, pid] { - auto& vec = ptr_cache__[pid]; - sw.start(); - for (std::size_t k = 0; k < 2; ++k) - for (int n = (CacheSize * pid); n < (CacheSize * (pid + 1)); ++n) { - int m = mode.template index(pid, k, n); - void*& p = vec[static_cast(m)]; - std::size_t s = sizes__[static_cast(m)]; - if (p == nullptr) { - p = AllocT::alloc(s); - } - else { - AllocT::free(p, s); - p = nullptr; - } - } - }; - } - - ipc_ut::sender().wait_for_done(); - sw.print_elapsed<1>(DataMin, DataMax, LoopCount, msg.c_str()); -} - -template -struct test_performance { - static void start(char const * message) { - test_performance::start(message); - benchmark_alloc(message); - } -}; - -template -struct test_performance { - static void start(char const * message) { - benchmark_alloc(message); - } -}; - -template -struct test_performance { - static void start(char const * message) { - test_performance::start(message); - benchmark_alloc(message); - } -}; - -template -struct test_performance { - static void start(char const * message) { - benchmark_alloc(message); - } -}; - -// class tc_alloc { -// public: -// static void clear() {} - -// static void* alloc(std::size_t size) { -// return size ? tc_malloc(size) : nullptr; -// } - -// static void free(void* p, std::size_t size) { -// tc_free_sized(p, size); -// } -// }; -/* -TEST(Memory, static_alloc) { - test_performance::start("alloc-free"); - test_performance::start("alloc-FIFO"); - test_performance::start("alloc-LIFO"); - test_performance::start("alloc-Rand"); -} - -TEST(Memory, pool_alloc) { - test_performance::start("alloc-free"); - test_performance::start("alloc-FIFO"); - test_performance::start("alloc-LIFO"); - test_performance::start("alloc-Rand"); -} -*/ -// TEST(Memory, tc_alloc) { -// test_performance::start(); -// test_performance::start(); -// test_performance::start(); -// test_performance::start(); -// } - -} // internal-linkage