M
MSCom
Neuer Benutzer
Threadstarter
- Dabei seit
- 20.09.2016
- Beiträge
- 1
Hallo,
ich habe ein VBA-Makro geschrieben, um Daten zusammenzufassen und aufzusummieren, die aus mehreren Eingangsdateien stammen. Da das Programm relativ lange läuft, habe ich einzelne Funktionen herausgenommen, um mit Testprogrammen Möglichkeiten zur Geschwindigkeitsoptimierung zu prüfen.
In einem dieser Testprogramme werden folgende Funktionen ausgeführt:
Da ich festgestellt hatte, dass die Laufzeiten beim Testen mit Breakpoints andere Werte brachten, habe ich einen Stop-Befehl eingefügt. Dieser Stop-Befehl steht nach dem Öffnen der externen Datei und vor der ersten Test-Funktion. In diesem Fall wurde die Laufzeit für die Array-Zusammenfassung auf ca. 3 sec und die Berechnung über Excel-Formeln auf ca. 2 sec reduziert! Die Gesamtlaufzeit war natürlich in diesem Fall von der Reaktionsgeschwindigkeit abhängig, mit der nach dem Stop-Befehl das Programm fortgesetzt wurde.
Meine Vermutung ist, dass nach dem Stop-Befehl der Interpreter den Rest des Programmes besser optimieren kann?
Da ich einem Anwender nicht zumuten kann, ein durch einen Stop-Befehl angehaltenes Programm fortzusetzen, ist meine Frage, wie kann ich den Effekt der Zeitreduzierung per Programm steuern bzw. gibt es andere Optionen die Laufzeit zu reduzieren?
Vielen Dank
ich habe ein VBA-Makro geschrieben, um Daten zusammenzufassen und aufzusummieren, die aus mehreren Eingangsdateien stammen. Da das Programm relativ lange läuft, habe ich einzelne Funktionen herausgenommen, um mit Testprogrammen Möglichkeiten zur Geschwindigkeitsoptimierung zu prüfen.
In einem dieser Testprogramme werden folgende Funktionen ausgeführt:
- Eine externe Daten mit den zu bearbeitenden Daten wird im Programm geöffnet. Die externe Datei enthält ein Arbeitsblatt mit einer Tabelle (ListObject) mit ca. 115.000 Zeilen und 36 Spalten.
- Bei dem ersten Test werden alle Daten in ein Array gelesen, zwei Zellen in einer Schleife über alle Zeilen zu einer Zelle für einen SVERWEIS zusammengefasst und der zusammengefasste Wert in die Excel-Tabelle zurückgeschrieben.
- In einem zweiten Test wird die unter 2. beschriebene Funktion mit Excel-Formeln für das ListObject ausgeführt.
Da ich festgestellt hatte, dass die Laufzeiten beim Testen mit Breakpoints andere Werte brachten, habe ich einen Stop-Befehl eingefügt. Dieser Stop-Befehl steht nach dem Öffnen der externen Datei und vor der ersten Test-Funktion. In diesem Fall wurde die Laufzeit für die Array-Zusammenfassung auf ca. 3 sec und die Berechnung über Excel-Formeln auf ca. 2 sec reduziert! Die Gesamtlaufzeit war natürlich in diesem Fall von der Reaktionsgeschwindigkeit abhängig, mit der nach dem Stop-Befehl das Programm fortgesetzt wurde.
Meine Vermutung ist, dass nach dem Stop-Befehl der Interpreter den Rest des Programmes besser optimieren kann?
Da ich einem Anwender nicht zumuten kann, ein durch einen Stop-Befehl angehaltenes Programm fortzusetzen, ist meine Frage, wie kann ich den Effekt der Zeitreduzierung per Programm steuern bzw. gibt es andere Optionen die Laufzeit zu reduzieren?
Vielen Dank