Ejemplo n.º 1
0
 /**
  * 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;
 }
Ejemplo n.º 2
0
 /**
  * Returns an array of the identifiers of available databases
  *
  * @return array
  */
 public function listDatabases()
 {
     $persistedDatabases = $this->listPersistedDatabases();
     $persistedDatabases = array_combine($persistedDatabases, $persistedDatabases);
     $inMemoryDatabases = Manager::getIdentifiersByTag(self::MEMORY_MANAGER_TAG, TRUE);
     $inMemoryDatabases = array_combine($inMemoryDatabases, $inMemoryDatabases);
     $allDatabases = array_merge($persistedDatabases, $inMemoryDatabases);
     return array_keys($allDatabases);
 }
Ejemplo n.º 3
0
 /**
  * @test
  */
 public function getIdentifierNotExistsGraceful()
 {
     $this->assertEmpty(Manager::getIdentifiersByTag('tag' . time(), TRUE));
 }