Start · Sprachen · PHP · Referenz · wincache_scache_meminfo

wincache_scache_meminfo

Funktion

Ruft Informationen zur Speichernutzung des WinCache Session-Caches ab und gibt diese als assoziatives Array zurück.

seit PHP 1.1.0 Kategorie: misc

Signatur

wincache_scache_meminfo(): array|false

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

Typ
array|false
Beschreibung
Gibt ein assoziatives Array mit Informationen zur Speichernutzung des Session-Caches zurück. Im Fehlerfall (z. B. wenn WinCache nicht aktiv ist) wird 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;
}
Gesamtspeicher: 30.00 MB Freier Speicher: 28.75 MB Belegte Blöcke: 12 Freie Blöcke: 134 Overhead-Blöcke:1

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;
    }
}
Session-Cache-Auslastung: 4.2% (1.25 MB von 30.00 MB belegt)

// 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.