Signatur
Beschreibung
wincache_ucache_meminfo() liefert detaillierte Speicherinformationen über den User-Cache von WinCache. Der User-Cache (auch User Cache genannt) ist ein gemeinsamer Speicherbereich, in dem Anwendungsdaten zwischen mehreren PHP-Prozessen und -Anfragen geteilt werden können.
Die zurückgegebenen Daten umfassen unter anderem die Gesamtgröße des allokierten Speichers, den freien und genutzten Anteil sowie die Anzahl der Speicherblöcke. Diese Informationen sind besonders nützlich für das Monitoring, die Diagnose von Speicherproblemen und die Optimierung der WinCache-Konfiguration in Produktionsumgebungen unter Windows/IIS.
Typische Einsatzgebiete sind Admin-Panels, Diagnose-Skripte oder automatisierte Überwachungssysteme, die den Gesundheitszustand des Caches regelmäßig überprüfen. Solche Skripte sollten jedoch aus Sicherheitsgründen nicht öffentlich zugänglich sein.
Rückgabewert
memory_total— Gesamtgröße des für den User-Cache reservierten Speichers in Bytes.memory_free— Aktuell freier Speicher in Bytes.num_used_blks— Anzahl der derzeit genutzten Speicherblöcke.num_free_blks— Anzahl der freien Speicherblöcke.num_overhead_blks— Anzahl der für Verwaltungszwecke (Overhead) verwendeten Speicherblöcke.
false zurück, wenn WinCache nicht aktiviert ist oder die Informationen nicht abgerufen werden konnten.Beispiele
Grundlegende Speicherinformationen ausgeben
<?php
$meminfo = wincache_ucache_meminfo();
if ($meminfo !== false) {
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 'Genutzte 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;
} else {
echo 'WinCache ist nicht aktiv oder Daten konnten nicht abgerufen werden.';
}
Speicherauslastung in Prozent berechnen
<?php
$meminfo = wincache_ucache_meminfo();
if ($meminfo !== false) {
$total = $meminfo['memory_total'];
$free = $meminfo['memory_free'];
$used = $total - $free;
$usage = ($used / $total) * 100;
printf(
"Speicherauslastung: %.1f%% (%s MB von %s MB genutzt)\n",
$usage,
number_format($used / 1024 / 1024, 2),
number_format($total / 1024 / 1024, 2)
);
if ($usage > 90) {
echo 'WARNUNG: Der User-Cache ist zu mehr als 90% ausgelastet!';
}
} else {
echo 'WinCache nicht verfügbar.';
}
// Wichtig · Fallstricke
Plattformabhängigkeit: WinCache ist ausschließlich für Windows-Server (IIS) verfügbar. Auf Linux- oder macOS-Systemen ist diese Funktion nicht vorhanden. Skripte, die wincache_ucache_meminfo() verwenden, sollten daher mit function_exists('wincache_ucache_meminfo') absichern, bevor sie aufgerufen werden.
Sicherheitshinweis: Diagnose-Skripte, die Cache- oder Speicherinformationen ausgeben, dürfen niemals öffentlich zugänglich sein, da sie interne Systemdetails preisgeben. Solche Seiten sollten hinter einer Authentifizierung oder IP-Beschränkung geschützt werden.
Die Funktion ist Teil der WinCache-Extension und wurde mit Version 1.1.0 eingeführt. Ab PHP 8.0 wird WinCache nicht mehr aktiv weiterentwickelt, weshalb ein Wechsel zu alternativen Caching-Lösungen wie APCu empfohlen wird.