Robustheit vs. Geschwindigkeit

Hi all,

mich beschäftigt, da ich mit sehr vielen Scripten und vielen auslösenden Events rechne, immer wieder das Thema Geschwindigkeit von Scripten.

Nun habe ich einige, die auf Variablen zugreifen, und teilweise auch eigene Semaphoren machen (gemeinsam verwendete Variablen).

Will man nun ein solches Skript „robust“ und „transportabel“ (also z.B. um es in einer anderen Installation wieder zu verwenden) gestalten, so sind viele „Hilfscode-Zeilen“ nötig, wie z.B. diese hier:


$CounterOId = IPS_GetObjectIDbyName($CounterVarName, $ScriptID); // exists??
if( $CounterOId == 0 ) {
 $LogMessage = "*** Warning: Missing Counter variable " . $ScriptName."\\" . $CounterVarFullName . " [float]. Check object structure!";
}else{
	$CounterObject = IPS_GetObject( $CounterOId );
	$IsCounterObjectVar = $CounterObject["ObjectType"]==2; // is variable?
	if( $IsCounterObjectVar ) {
		$CounterValue = GetValue( $CounterOId );
		if (is_integer($CounterValue)) {
			SetValueInteger($CounterOId, $CounterValue + 1);
		}else{
			$LogMessage = "*** Warning: Type mismatch. Counter var no integer. Name=" . $CounterVarFullName . ", ID=" . $CounterOId . ". Check object structure!";
		}
	}else{
			$LogMessage = "*** Warning: Type mismatch. Counter entry no variable. Name=" . $CounterVarFullName . ", ID=" . $CounterOId . ". Check object structure!";
	}
};
if( !($LogMessage == "")) 	IPS_LogMessage( $LogMessageIdentifier, $LogMessage);


Hat man also viele Variablen, so kommen doch etliche Zeilen code zusammen. Bei mir habe ich z.B. bei einem Script fast 100 solche Hilfszeilen Code, die eigentliche Funktion ist dann vielleicht 20 Zeilen lang. Krasses Mißverhältnis.

Alternative ist, Variablen einfach auszulesen und zu schreiben, fertig. Geht’s schief, funzt das Script eben nicht.

Oder die Aussage, dass solche Codezeilen minimale Lade- und Abarbeitungszeit brauchen, man sie also getrost einbauen kann.

Hat da jemand Empfehlungen aus der Praxis?

Vielleicht können ja auch die „Steiner’schen Leute“ aus deren Projekten etwas sagen?

Mich - weil ich das IPS System eben auch bei Projekten für Dritte einsetzen will - interessiert halt auch die Robustheit: Was, wenn der Kunde oder einer seiner „Informatiker“ (absichtlich, weil Zusammenhänge nicht begriffen werden oder auch unabsichtlich, weil ein Script „spinnt“) z.B. den Objektbaum verändert?

Bin sehr gespannt!
jwka