--- trunk/OOPSE-2.0/src/brains/BlockSnapshotManager.cpp 2005/02/15 17:11:35 2031 +++ trunk/OOPSE-2.0/src/brains/BlockSnapshotManager.cpp 2005/02/17 15:18:36 2042 @@ -40,6 +40,7 @@ */ #include #include "brains/BlockSnapshotManager.hpp" +#include "utils/residentMem.h" #include "utils/physmem.h" #include "utils/Algorithm.hpp" #include "brains/SimInfo.hpp" @@ -48,21 +49,23 @@ BlockSnapshotManager::BlockSnapshotManager(SimInfo* in namespace oopse { BlockSnapshotManager::BlockSnapshotManager(SimInfo* info, const std::string& filename, int storageLayout, int blockCapacity) - : SnapshotManager(storageLayout), info_(info), blockCapacity_(blockCapacity), activeBlocks_(blockCapacity_, -1) { + : SnapshotManager(storageLayout), info_(info), blockCapacity_(blockCapacity), + activeBlocks_(blockCapacity_, -1), activeRefCount_(blockCapacity_, 0) { nAtoms_ = info->getNGlobalAtoms(); nRigidBodies_ = info->getNGlobalRigidBodies(); - double avalPhysMem = physmem_available(); + double physMem = physmem_total(); + double rssMem = residentMem(); + double avaliablePhysMem = physMem - rssMem; int bytesPerStuntDouble = DataStorage::getBytesPerStuntDouble(storageLayout); int bytesPerFrame = (nRigidBodies_ + nAtoms_) * bytesPerStuntDouble; - int frameCapacity = int (avalPhysMem / bytesPerFrame); + int frameCapacity = int (avaliablePhysMem / bytesPerFrame); nSnapshotPerBlock_ = frameCapacity /blockCapacity_ ; - reader_ = new DumpReader(info, filename); nframes_ = reader_->getNFrames(); @@ -78,6 +81,9 @@ BlockSnapshotManager::BlockSnapshotManager(SimInfo* in blocks_.back().second = nframes_; snapshots_.insert(snapshots_.begin(), nframes_, static_cast(NULL)); + + std::cout << "physmem = " << int(physMem) << "\trssMem = "<< int(rssMem) << "\t availablePhysMem = " << int(avaliablePhysMem) <