« Zurück zu Produkt

Dokumentation

IPS_GetScriptThread

 array IPS_GetScriptThread (int $ThreadID) 

Parameterliste

ThreadID

ID des Threads

Rückgabewert

Folgende Informationen stehen als key => value Paare zur Verfügung:

Index Typ Beschreibung
ThreadID integer ID des Threads
ExecuteCount integer Anzahl der bisherigen Ausführungen in diesem Thread
ExecutionMin integer Kürzeste Ausführungsdauer in Millisekunden
ExecutionAvg integer Durchschnittliche Ausführungsdauer in Millisekunden
ExecutionMax integer Längste Ausführungsdauer in Millisekunden
StartTime integer Unix-Zeitstempel des Starts der aktuellen Ausführung, 0 wenn der Thread frei ist
Sender string Auslöser der aktuellen Ausführung (Wert von $_IPS['SENDER'], z.B. "RunScript" oder "TimerEvent"), leer wenn der Thread frei ist
SenderID integer ID des auslösenden Objekts (das Ereignis, die Zielinstanz oder das Skript), 0 wenn der Thread frei ist (ab Version 9.0)
FilePath string Was gerade ausgeführt wird: die Skriptdatei relativ zum Programmverzeichnis (z.B. "scripts/12345.ips.php"), bei Skripttext die ersten 100 Zeichen, bei PHP-Modulen die ausgeführte Funktion bzw. der Timer, bei Ablaufplänen RunID und Schritt; leer wenn der Thread frei ist
ScriptID integer ID des ausgeführten Skripts, 0 bei Skripttext oder wenn der Thread frei ist
PeakMemoryUsage integer Höchster Speicherbedarf einer Ausführung in Byte seit der letzten Speicherbereinigung
RetainedMemoryUsage integer Speicher in Byte, den der Thread zwischen den Ausführungen belegt hält, 0 nachdem ein unbenutzter Thread seinen Speicher freigegeben hat
MemoryCleanups integer Anzahl der Speicherbereinigungen. Überschreitet der Speicherbedarf einer Ausführung die Grenze ThreadMemoryCleanup (Standard 10 MB), gibt der Thread seinen Speicher danach frei

Beschreibung

Die Funktion liefert Informationen über den Thread mit der ID ThreadID: die Statistik der bisherigen Ausführungen, den Speicherbedarf und, falls der Thread gerade beschäftigt ist, die aktuelle Ausführung. Existiert der Thread nicht, schlägt die Funktion mit "ScriptThread #... does not exist" fehl.

PHP-Skripte werden in einem festen Pool von Threads ausgeführt. Die Anzahl der Threads legt der Spezialschalter ThreadCount fest (Standard 50, mindestens 25), die Threads haben die IDs 1 bis ThreadCount. Innerhalb eines Skripts enthält die Systemvariable $_IPS['THREAD'] die ID des eigenen Threads.

Die IDs aller Threads liefert IPS_GetScriptThreadList, die Informationen mehrerer Threads auf einmal liefert IPS_GetScriptThreads.

Beispiel

// Informationen über den eigenen Thread
print_r(IPS_GetScriptThread($_IPS['THREAD']));

/* liefert z.B.:
Array
(
    [ThreadID] => 3
    [ExecuteCount] => 152
    [ExecutionMin] => 0
    [ExecutionAvg] => 12
    [ExecutionMax] => 1530
    [StartTime] => 1758880000
    [Sender] => RunScript
    [SenderID] => 12345
    [FilePath] => scripts/12345.ips.php
    [ScriptID] => 12345
    [PeakMemoryUsage] => 2097152
    [RetainedMemoryUsage] => 2097152
    [MemoryCleanups] => 0
)
*/
Haben Sie noch Fragen?