08.07.2013, 14:59
Hallo,
es gibt ja jetzt die Möglichkeit der bedingten Ausgabe aus einer While schleife (also: Autoindexing in ein Array und dabei nur wenn Bedingung erfüllt reinschreiben). Da mein letzter Wert in der Schleife müll ist wollt ich den da gleich mit rauswerfen (statt hinterher) und also den Bedingungsanschluss mit dem Schleifenende verdrahtet. Das sollte ja nicht viel machen - dachte ich.
Allerdings: Plötzlich war die Laufzeit statt 7-8s bei 24-25s (natürlich bei gleichen Eingabedaten).
Kann das schlecht hochladen da das Teil von nem LVOO Projekt ist (und ich damit deutlich mehr als das eigentliche VI hochladen müsste damit das auch funzt - das erspar ich euch und uns). Hier der betreffende Code abschnitt (aussen drumrum ist nur links die zwei inputcontrols und rechts die zwei outputs):
Ohne bedingtes Einfügen:
[attachment=45312]
Mit bedingtem Einfügen:
[attachment=45313]
Der Code unterscheidet sich ausschließlich an dieser einen Stelle. Verstehe diese dramatischen Unterschiede nicht bei der Laufzeit - kann mich da jemand aufklären? Sollte ja eigentlich bis auf eine If Abfrage in jedem Schleifendurchlauf mehr das gleiche machen (unter der Haube).
Gruß Kiesch
P.S: Achja, der code rechts der Schleife wirft das letzte Tabellenfeld raus (hab das Problem damit schon umgangen und das ist natürlich deutlich effizienter). Die Variante mit bedingtem Einfügen hab ich dann daraus gebastelt zur Veranschaulichung - gibt also ein leicht anderes Ergebnis als die Variante ohne bedingtes Einfügen.
Gelesen wird eine Excell tabelle mit glaube ~4600 zeilen - daher die lange Laufzeit.
P.P.S: Achja, sollte ich die Referenzen (die in der Schleife geholt werden) lieber gleich in der Schleife schließen oder ist das sinnvoller die so wie aktuell gelöst alle ausserhalb der Schleife zu schließen?
es gibt ja jetzt die Möglichkeit der bedingten Ausgabe aus einer While schleife (also: Autoindexing in ein Array und dabei nur wenn Bedingung erfüllt reinschreiben). Da mein letzter Wert in der Schleife müll ist wollt ich den da gleich mit rauswerfen (statt hinterher) und also den Bedingungsanschluss mit dem Schleifenende verdrahtet. Das sollte ja nicht viel machen - dachte ich.
Allerdings: Plötzlich war die Laufzeit statt 7-8s bei 24-25s (natürlich bei gleichen Eingabedaten).
Kann das schlecht hochladen da das Teil von nem LVOO Projekt ist (und ich damit deutlich mehr als das eigentliche VI hochladen müsste damit das auch funzt - das erspar ich euch und uns). Hier der betreffende Code abschnitt (aussen drumrum ist nur links die zwei inputcontrols und rechts die zwei outputs):
Ohne bedingtes Einfügen:
[attachment=45312]
Mit bedingtem Einfügen:
[attachment=45313]
Der Code unterscheidet sich ausschließlich an dieser einen Stelle. Verstehe diese dramatischen Unterschiede nicht bei der Laufzeit - kann mich da jemand aufklären? Sollte ja eigentlich bis auf eine If Abfrage in jedem Schleifendurchlauf mehr das gleiche machen (unter der Haube).
Gruß Kiesch
P.S: Achja, der code rechts der Schleife wirft das letzte Tabellenfeld raus (hab das Problem damit schon umgangen und das ist natürlich deutlich effizienter). Die Variante mit bedingtem Einfügen hab ich dann daraus gebastelt zur Veranschaulichung - gibt also ein leicht anderes Ergebnis als die Variante ohne bedingtes Einfügen.
Gelesen wird eine Excell tabelle mit glaube ~4600 zeilen - daher die lange Laufzeit.
P.P.S: Achja, sollte ich die Referenzen (die in der Schleife geholt werden) lieber gleich in der Schleife schließen oder ist das sinnvoller die so wie aktuell gelöst alle ausserhalb der Schleife zu schließen?