INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
AMG Entwicklungsingenieur eDrive (m/w)
Affalterbach

Big Data Scientist / Analyst (m/w) Messdatenmanagement
Ingolstadt

Projektmanager Visualisierung (m/w)
München, Fulda

Inbetriebnehmer (m/w) für Visualisierungssysteme
Bietigheim-Bissingen

Softwareentwickler (m/w) Oracle IDS (Forms & Reports)
Freiburg im Breisgau





.
 
Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Performance in DIAdem: ScriptInclude anstelle von ScriptStart
04.12.2008, 18:25, (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2008, 08:36 von Carpe_DIAdem.)
#1
DIAdem-Version: alle
DIAdem-Sprachversion: DE/EN
DIAdem Erfahrung seit: 1995
Performance in DIAdem: ScriptInclude anstelle von ScriptStart

Hallo zusammen,

Das Aufteilen von größeren Applikationen auf mehrere VBS-Dateien ist durchaus üblich und sinnvoll. Es erhöht die Lesbarkeit verringert den Wartungsaufwand und strukturiert die Script-Applikation. Durch das Aufteilen können VBS-Funktionsbibliotheken erstellt werden, die in mehreren Applikationen verwendet werden können.

Prinzipiell bestehen zwei Möglichkeiten aus einem Haupt-Script eine Funktion aus einer anderen Script-Datei aufzurufen: über ScriptStart und über ScriptInclude.

Verwendet immer ScriptInclude! Der Funktionsaufruf erfolgt über den Funktionsnamen und kann Parameter enthalten. Damit solche Funktionen nur aus anderen Scripten aufrufbar sind, könnt ihr diese Funktionsbibliotheken mit SubSequence kennzeichnen.

Begründung: Bei ScriptStart ist mehr Verwaltungsarbeit notwendig, da quasi immer eine neue Script-Engine gestartet wird. In dieser Script-Engine wird die Funktion dann ausgeführt. Der zusätzliche Aufwand geht zu Lasten der Performance.

Im angehängten Beispiel wird nur die Zeitdauer für den Aufruf einer Funktion gemessen - dh. die Funktionen selbst sind leer. In der ersten Variante wird der Funktionsaufruf mittels ScriptStart getestet; die zweite zeigt den ScriptInclude. Um der Vergleich abzurunden wir im Hauptscript auch eine leere Funktion definiert und als dritte Variante getestet. Zum Testen ladet die Datei ScriptStartTest_Main.VBS in den SCRIPT-Editor (die beiden anderen Dateien sollten nicht geladen sein) und startet das Script. Die gemessenen Zeiten werden in den Logfile geschrieben.
Ihr könnt erkennen, dass selbst wenn die Anzahl der Schleifendurchläufe (Variable iMaxLoop ändern) 100 beträgt, die Funktionsaufrufe über ScriptInclude und der direkte Aufruf aus dem Hauptscript keine messbaren Zeiten ergeben. ScriptStart hingegen - je nach PC - bei etwa 10 Sekunden liegt.

Vorteile bei ScriptInclude:
Nutzung von Übergabeparametern
Nutzung von Rückgabewerten
Debuggen von Aufrufen in ein anderes Script
Nutzung von Namensbereichen
Nutzung von Objekten, Variablen eines anderen Scripts

Sinnvoller Einsatz von ScriptStart:
Start eines Scripts als Programmparameter
Belegung von Menüs, Buttons und anderen Controls zum Starten von Scripten
Aufruf von Scripten über OLE

Carpe DIAdem

.zip   Script.zip (Größe: 2,32 KB / Downloads: 862)



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Vergleich Excel / DIAdem Bruno 0 8.039 18.02.2011, 11:36
Letzter Beitrag: Bruno
  DIAdem Autocode: Programmieren leichtgemacht Bruno 0 10.123 19.03.2010, 08:39
Letzter Beitrag: Bruno
  Performance in DIAdem: Optimales Lesen und Schreiben von Kanaldaten Carpe_DIAdem 0 11.029 17.12.2008, 11:08
Letzter Beitrag: Carpe_DIAdem

Gehe zu: