Add gc_mem_caches() call for PHP7 after itoken_get_all() as new memory manager will not release small buckets to OS automatically
This commit is contained in:
parent
d1f72d8ef4
commit
e555aade12
@ -61,6 +61,11 @@ class PhpExtractor implements ExtractorInterface
|
|||||||
$files = $finder->files()->name('*.php')->in($directory);
|
$files = $finder->files()->name('*.php')->in($directory);
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
$this->parseTokens(token_get_all(file_get_contents($file)), $catalog);
|
$this->parseTokens(token_get_all(file_get_contents($file)), $catalog);
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID >= 70000) {
|
||||||
|
// PHP 7 memory manager will not release after token_get_all(), see https://bugs.php.net/70098
|
||||||
|
gc_mem_caches();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,7 +193,15 @@ class ClassCollectionLoader
|
|||||||
$rawChunk .= "}\n";
|
$rawChunk .= "}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
return $output.self::compressCode($rawChunk);
|
$output .= self::compressCode($rawChunk);
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID >= 70000) {
|
||||||
|
// PHP 7 memory manager will not release after token_get_all(), see https://bugs.php.net/70098
|
||||||
|
unset($tokens, $rawChunk);
|
||||||
|
gc_mem_caches();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,6 +72,11 @@ class ClassMapGenerator
|
|||||||
|
|
||||||
$classes = self::findClasses($path);
|
$classes = self::findClasses($path);
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID >= 70000) {
|
||||||
|
// PHP 7 memory manager will not release after token_get_all(), see https://bugs.php.net/70098
|
||||||
|
gc_mem_caches();
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($classes as $class) {
|
foreach ($classes as $class) {
|
||||||
$map[$class] = $path;
|
$map[$class] = $path;
|
||||||
}
|
}
|
||||||
|
@ -733,6 +733,12 @@ abstract class Kernel implements KernelInterface, TerminableInterface
|
|||||||
|
|
||||||
$output .= $rawChunk;
|
$output .= $rawChunk;
|
||||||
|
|
||||||
|
if (PHP_VERSION_ID >= 70000) {
|
||||||
|
// PHP 7 memory manager will not release after token_get_all(), see https://bugs.php.net/70098
|
||||||
|
unset($tokens, $rawChunk);
|
||||||
|
gc_mem_caches();
|
||||||
|
}
|
||||||
|
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,10 @@ class AnnotationFileLoader extends FileLoader
|
|||||||
$collection->addResource(new FileResource($path));
|
$collection->addResource(new FileResource($path));
|
||||||
$collection->addCollection($this->loader->load($class, $type));
|
$collection->addCollection($this->loader->load($class, $type));
|
||||||
}
|
}
|
||||||
|
if (PHP_VERSION_ID >= 70000) {
|
||||||
|
// PHP 7 memory manager will not release after token_get_all(), see https://bugs.php.net/70098
|
||||||
|
gc_mem_caches();
|
||||||
|
}
|
||||||
|
|
||||||
return $collection;
|
return $collection;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user