protected function tearDown() { // unset($this->fixture); // unset($this->diContainer); if (class_exists('Cundd\\PersistentObjectStore\\Memory\\Manager')) { // MemoryManager::freeObjectsByTag(Coordinator::MEMORY_MANAGER_TAG); Manager::freeAll(); } gc_collect_cycles(); }
/** * Tries to free the given amount of memory * * @param int $size Memory to free in bytes * @return bool Returns if the memory could be freed */ public function freeMemory($size) { $currentMemory = memory_get_usage(TRUE); $freedMemory = 0; $databases = Manager::getIdentifiersByTag(Coordinator::MEMORY_MANAGER_TAG, TRUE); foreach ($databases as $identifier) { Manager::free($identifier); $freedMemory += $currentMemory - memory_get_usage(TRUE); $currentMemory = memory_get_usage(TRUE); if ($freedMemory >= $size) { return TRUE; } // DebugUtility::var_dump(gc_enabled(), array_keys(get_defined_vars()), GeneralUtility::formatBytes($currentMemory), GeneralUtility::formatBytes($freedMemory)); } // DebugUtility::var_dump(gc_enabled(), array_keys(get_defined_vars()), GeneralUtility::formatBytes($currentMemory), GeneralUtility::formatBytes($freedMemory)); return FALSE; }
/** * Returns the static object store * * @return array * @internal */ public function getObjectStore() { return Manager::getObjectsByTag(self::MEMORY_MANAGER_TAG); }
protected function tearDown() { Manager::freeAll(); }
/** * @param $identifier1 * @param $identifier2 * @param $identifier3 */ protected function createBigData($identifier1, $identifier2, $identifier3) { $object = new Document(array('email' => '*****@*****.**')); Manager::registerObject($object, $identifier1, array('tag1', 'tag2')); $this->assertTrue(Manager::hasObject($identifier1)); $this->assertSame($object, Manager::getObject($identifier1)); $object = new stdClass(); $object->data = file_get_contents($this->checkPersonFile()); Manager::registerObject($object, $identifier2, array('tag1', 'tag2', 'tag3')); $this->assertTrue(Manager::hasObject($identifier2)); $this->assertSame($object, Manager::getObject($identifier2)); $object = new stdClass(); Manager::registerObject($object, $identifier3, array('tag2', 'tag3')); $this->assertTrue(Manager::hasObject($identifier3)); $this->assertSame($object, Manager::getObject($identifier3)); }
/** * A maintenance task that will be performed when the server becomes idle */ public function runMaintenance() { $this->coordinator->commitDatabases(); Manager::cleanup(); }