mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-23 11:26:37 +00:00
Release memory to OS on garbage collection
ZMM often holds onto big chunks of memory after they aren't used anymore, which is fine in a webserver, but it's not OK for PM.
This commit is contained in:
parent
d2f1a3cf5b
commit
d3ea29d527
@ -40,6 +40,7 @@ use function fwrite;
|
|||||||
use function gc_collect_cycles;
|
use function gc_collect_cycles;
|
||||||
use function gc_disable;
|
use function gc_disable;
|
||||||
use function gc_enable;
|
use function gc_enable;
|
||||||
|
use function gc_mem_caches;
|
||||||
use function get_class;
|
use function get_class;
|
||||||
use function get_declared_classes;
|
use function get_declared_classes;
|
||||||
use function implode;
|
use function implode;
|
||||||
@ -273,6 +274,7 @@ class MemoryManager{
|
|||||||
}
|
}
|
||||||
|
|
||||||
$cycles = gc_collect_cycles();
|
$cycles = gc_collect_cycles();
|
||||||
|
gc_mem_caches();
|
||||||
|
|
||||||
Timings::$garbageCollectorTimer->stopTiming();
|
Timings::$garbageCollectorTimer->stopTiming();
|
||||||
|
|
||||||
|
@ -25,11 +25,13 @@ namespace pocketmine\scheduler;
|
|||||||
|
|
||||||
use function gc_collect_cycles;
|
use function gc_collect_cycles;
|
||||||
use function gc_enable;
|
use function gc_enable;
|
||||||
|
use function gc_mem_caches;
|
||||||
|
|
||||||
class GarbageCollectionTask extends AsyncTask{
|
class GarbageCollectionTask extends AsyncTask{
|
||||||
|
|
||||||
public function onRun(){
|
public function onRun(){
|
||||||
gc_enable();
|
gc_enable();
|
||||||
gc_collect_cycles();
|
gc_collect_cycles();
|
||||||
|
gc_mem_caches();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user