diff options
author | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-02-02 15:43:00 +0000 |
---|---|---|
committer | Erik Schnetter <schnetter@cct.lsu.edu> | 2008-02-02 15:43:00 +0000 |
commit | 1beb710e75a868f71b74ca5a2b13017593a4469e (patch) | |
tree | d9d916cb78ae9b3ee1bd824fbfc9d32401892d2d /Carpet/CarpetLib/src/mem.cc | |
parent | d2d5504fd8975ae714d70cbdda4805d49f0c5bf5 (diff) |
CarpetLib: Add function memoryof to measure size of data structures
Add an overloaded function memoryof which measures the size in bytes
of CarpetLib's data structures.
darcs-hash:20080202154302-dae7b-de41c79cb04617327695fae27928c05c5d431ee8.gz
Diffstat (limited to 'Carpet/CarpetLib/src/mem.cc')
-rw-r--r-- | Carpet/CarpetLib/src/mem.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Carpet/CarpetLib/src/mem.cc b/Carpet/CarpetLib/src/mem.cc index b6b1c9c8e..d8603591b 100644 --- a/Carpet/CarpetLib/src/mem.cc +++ b/Carpet/CarpetLib/src/mem.cc @@ -150,6 +150,25 @@ has_clients () const +// Memory usage +template<typename T> +size_t +mem<T>:: +memory () + const +{ + return + memoryof (storage_) + + memoryof (nelems_) + + memoryof (vectorlength_) + + memoryof (owns_storage_) + + memoryof (clients_) + + memoryof (num_clients_) + + (owns_storage_ ? sizeof (T) * vectorlength_ * nelems_ : 0); +} + + + size_t const mempool::chunksize; size_t const mempool::align; @@ -205,6 +224,25 @@ alloc (size_t nbytes) +// Memory usage +size_t +mempool:: +memory () + const +{ + return + memoryof (chunks) + + memoryof (freeptr) + + memoryof (freesize) + + (chunksize * chunks.size()); +} + + + +//////////////////////////////////////////////////////////////////////////////// + + + extern "C" void CarpetLib_setmemlimit (CCTK_ARGUMENTS); void CarpetLib_setmemlimit (CCTK_ARGUMENTS) |