Signatur
Beschreibung
wincache_scache_meminfo() ist Teil der WinCache-Erweiterung für PHP unter Windows und liefert detaillierte Informationen über die Speichernutzung des Session-Caches. Der Session-Cache wird verwendet, um PHP-Session-Daten zwischen Anfragen zu speichern und zu teilen.
Die Funktion gibt ein assoziatives Array zurück, das Kennzahlen wie den gesamten verfügbaren Speicher, den belegten Speicher, den freien Speicher sowie die Anzahl der freien und belegten Speicherblöcke enthält. Diese Informationen sind besonders nützlich für die Überwachung und Optimierung der WinCache-Konfiguration in Produktionsumgebungen.
Typische Einsatzszenarien sind Monitoring-Skripte, Admin-Dashboards oder Performance-Diagnosen, bei denen überprüft werden soll, ob der Session-Cache-Speicher ausreichend dimensioniert ist oder ob Engpässe vorliegen.
- memory_total: Gesamter Speicher des Session-Caches in Bytes
- memory_free: Freier Speicher in Bytes
- num_used_blks: Anzahl der belegten Speicherblöcke
- num_free_blks: Anzahl der freien Speicherblöcke
- num_overhead_blks: Anzahl der Overhead-Speicherblöcke
Rückgabewert
false zurückgegeben.Beispiele
Speichernutzung des Session-Caches ausgeben
<?php
$meminfo = wincache_scache_meminfo();
if ($meminfo === false) {
echo 'WinCache ist nicht verfügbar oder nicht aktiv.';
} else {
echo 'Gesamtspeicher: ' . number_format($meminfo['memory_total'] / 1024 / 1024, 2) . ' MB' . PHP_EOL;
echo 'Freier Speicher: ' . number_format($meminfo['memory_free'] / 1024 / 1024, 2) . ' MB' . PHP_EOL;
echo 'Belegte Blöcke: ' . $meminfo['num_used_blks'] . PHP_EOL;
echo 'Freie Blöcke: ' . $meminfo['num_free_blks'] . PHP_EOL;
echo 'Overhead-Blöcke:' . $meminfo['num_overhead_blks'] . PHP_EOL;
}
Einfaches Monitoring-Skript mit Warnung bei hoher Speicherauslastung
<?php
$meminfo = wincache_scache_meminfo();
if ($meminfo !== false) {
$gesamtMB = $meminfo['memory_total'] / 1024 / 1024;
$freiMB = $meminfo['memory_free'] / 1024 / 1024;
$belegtMB = $gesamtMB - $freiMB;
$auslastung = ($belegtMB / $gesamtMB) * 100;
printf(
'Session-Cache-Auslastung: %.1f%% (%.2f MB von %.2f MB belegt)' . PHP_EOL,
$auslastung,
$belegtMB,
$gesamtMB
);
if ($auslastung > 80) {
echo 'WARNUNG: Session-Cache-Speicher ist zu mehr als 80% belegt!' . PHP_EOL;
}
}
// Wichtig · Fallstricke
Plattformabhängigkeit: wincache_scache_meminfo() ist ausschließlich auf Windows-Systemen mit installierter und aktivierter WinCache-Erweiterung verfügbar. Auf Linux/macOS-Systemen existiert diese Funktion nicht.
Voraussetzungen: Die WinCache-Erweiterung muss in der php.ini aktiviert sein (extension=php_wincache.dll) und der Session-Cache muss aktiviert sein (wincache.scachesize > 0). Andernfalls gibt die Funktion false zurück.
Hinweis: Die WinCache-Erweiterung wird seit PHP 8.0 nicht mehr aktiv weiterentwickelt und ist möglicherweise in neueren PHP-Versionen nicht verfügbar. Für aktuelle Projekte sollte die Kompatibilität mit der eingesetzten PHP-Version geprüft werden.