Signatur
Beschreibung
wincache_fcache_meminfo() ist eine Funktion der WinCache-Erweiterung für PHP unter Windows und liefert detaillierte Informationen über den Speicherverbrauch des internen Datei-Caches (File Cache). Der Datei-Cache speichert den Inhalt gelesener PHP-Quelldateien im gemeinsamen Speicher, um wiederholte Festplattenzugriffe zu vermeiden.
Die zurückgegebenen Daten geben Auskunft über die Gesamtgröße des zugewiesenen Speichers, den freien Speicher, die Anzahl der belegten Speicherblöcke sowie weitere Metriken zur Speicherfragmentierung. Diese Informationen sind besonders hilfreich beim Monitoring und bei der Leistungsoptimierung von PHP-Anwendungen auf Windows-Servern mit IIS.
Die Funktion eignet sich für den Einsatz in Administrations- und Diagnose-Skripten. Typischerweise wird sie zusammen mit wincache_fcache_fileinfo() verwendet, um ein vollständiges Bild des Datei-Cache-Zustands zu erhalten.
Rückgabewert
Gibt bei Erfolg ein assoziatives Array mit folgenden Schlüsseln zurück, oder false wenn die WinCache-Erweiterung nicht verfügbar ist oder ein Fehler auftritt:
memory_total– Gesamter für den Datei-Cache reservierter Speicher in Bytes.memory_free– Aktuell freier Speicher im Datei-Cache in Bytes.num_used_blks– Anzahl der aktuell belegten Speicherblöcke.num_free_blks– Anzahl der aktuell freien Speicherblöcke.num_overhead_blks– Anzahl der Speicherblöcke, die für interne Verwaltung (Overhead) verwendet werden.
Beispiele
Grundlegende Ausgabe der Speicherinformationen
<?php
$meminfo = wincache_fcache_meminfo();
if ($meminfo === false) {
echo 'WinCache ist nicht verfügbar oder deaktiviert.';
} else {
echo 'Gesamter Datei-Cache-Speicher: ' . 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 Speicherblöcke: ' . $meminfo['num_used_blks'] . PHP_EOL;
echo 'Freie Speicherblöcke: ' . $meminfo['num_free_blks'] . PHP_EOL;
echo 'Overhead-Speicherblöcke: ' . $meminfo['num_overhead_blks'] . PHP_EOL;
}
Speicherauslastung als Prozentsatz berechnen
<?php
$meminfo = wincache_fcache_meminfo();
if ($meminfo !== false) {
$total = $meminfo['memory_total'];
$free = $meminfo['memory_free'];
$used = $total - $free;
$pct = ($total > 0) ? round(($used / $total) * 100, 1) : 0;
echo sprintf(
'Datei-Cache-Auslastung: %s von %s MB (%.1f %%)' . PHP_EOL,
number_format($used / 1024 / 1024, 2),
number_format($total / 1024 / 1024, 2),
$pct
);
if ($pct > 90) {
echo 'WARNUNG: Datei-Cache ist fast voll. Cache-Größe ggf. erhöhen.' . PHP_EOL;
}
}
// Wichtig · Fallstricke
Plattformabhängigkeit: wincache_fcache_meminfo() steht ausschließlich unter Windows zur Verfügung und erfordert die installierte und aktivierte WinCache-Erweiterung (wincache.dll). Auf Linux- oder macOS-Systemen ist diese Funktion nicht definiert.
Zugriffskontrolle: Diagnose-Skripte, die interne Cache-Informationen ausgeben, sollten niemals öffentlich zugänglich sein, da sie Rückschlüsse auf die Serverarchitektur und den Speicherverbrauch zulassen. Schütze solche Skripte durch Authentifizierung oder IP-Beschränkungen.
Ab WinCache 2.0 werden ausschließlich PHP 7 und höher unterstützt. Für PHP 8 ist die WinCache-Erweiterung nur eingeschränkt verfügbar; prüfe die Kompatibilität vor dem Einsatz.