Array Indizieren - Teilarray ersetzen durch Kommawerte - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Array Indizieren - Teilarray ersetzen durch Kommawerte (/Thread-Array-Indizieren-Teilarray-ersetzen-durch-Kommawerte) Seiten: 1 2 |
Array Indizieren - Teilarray ersetzen durch Kommawerte - stromflo - 26.05.2010 07:12 Hallo Seba, mich würde noch interessieren wo ich das ramp vi finde, welches du in dem Vergleichpost bei Variante 1 gepostet hast. Will ja auch für die Zukunft lernen, wer weiß wie viele Anwendungen ich noch in LabVIEW schreib Und noch mal vielen Dank! Man muss schon sagen ein super Forum ist das hier! Gruß Flo Array Indizieren - Teilarray ersetzen durch Kommawerte - dimitri84 - 26.05.2010 07:21 ' schrieb:mich würde noch interessieren wo ich das ramp vi finde, welches du in dem Vergleichpost bei Variante 1 gepostet hast.Es gibt immer noch die Hilfe flo ... "Rampen-Muster" [attachment=26671] Array Indizieren - Teilarray ersetzen durch Kommawerte - chrissyPu - 26.05.2010 07:22 Das ist ein VI aus der "Signalverlauf erstellen"-Palette... Array Indizieren - Teilarray ersetzen durch Kommawerte - RoLe - 26.05.2010 07:51 ' schrieb:Für meine Zwecke ist die Variante 2 aber wohl außreichend, da das Array ja nur am Teststart indiziert wird und dann die Werte ersetzt werden.Du schreibst nirgens, dass du eine Rampe im erstellten Array benötigst. Du möchtest doch nur "schnell" ein Array erstellen, dazu genügt die Funktion "Array initialisieren". Oder nicht ? Array Indizieren - Teilarray ersetzen durch Kommawerte - Lucki - 26.05.2010 09:19 Also ich gestehe, daß ich einen Tick habe: ich scheue Konvertierungen wie der Teufel das Weihwasser. Deshalb benutze ich in for-Schleifen in der Regel nicht den index i, wenn ich einen dbl-Array erzeugen und/oder berechnen muß, sondern mache es eher so: [attachment=26699] Beim Ramp-Generator (- den ich in genau diesem Beispiel natürlich auch bevorzugen würde -) ist noch zu bemerken, daß er in der Basisversion von LV nicht enthalten ist. Array Indizieren - Teilarray ersetzen durch Kommawerte - stromflo - 26.05.2010 09:51 Danke! Gibt ja wirklich enorm viele Möglichkeiten. Zitat:Du möchtest doch nur "schnell" ein Array erstellen, dazu genügt die Funktion "Array initialisieren". Am Anfang hatte ich das Problem, dass ich das Array mit build Array in der Testschleife erstellt hab. Da stellte ich fest, dass die Performance darunter richtig leidet....... Darauf hin hab ich mir dann gedacht ich initialisiere es lieber vor dem Test und ersetze die Werte, dann nur noch während dem Testlauf. Von ca. 95% CPU Auslastung blieben durch Array ersetzen nur noch ca. 10% übrig. Die Array Build Funktion verschlingt quasi ein haufen Performance. Also passt natürlich auch diese Variante ohne Probleme. Gruß Flo Array Indizieren - Teilarray ersetzen durch Kommawerte - Kiesch - 26.05.2010 14:32 @Typenkonvertierung in und außerhalb der Schleife zeigt ja offenbar ein sehr nachvollziehbares Verhalten. Für große Arrays ist der Cast nach der Schleife schneller (ein komplexerer Cast der erst bei vielen Elementen Zeit einspart), während für wenige Elemente der Cast in der Schleife schneller ist (wenige Elemente ergo begrenzt viele Aufrufe dieses mit weniger "overhead" belasteten Casts). Wobei natürlich wenige Elemente hier 10k und viele 100k entspricht. Es wäre also anzunehmen, dass irgendwo dazwischen beide Varianten gleich schnell sind. P.S: Ist die Variante ohne typecast eigentlich schneller? Oder wird der Vorteil durch die Inkrement Operation wieder aufgefressen? Die könnte man ja sogar weglassen wenn es nur ums reine Array initialisieren geht und hätte vermutlich die Variante mit dem geringsten Zeitaufwand. Array Indizieren - Teilarray ersetzen durch Kommawerte - jak888 - 26.05.2010 15:19 Also ich hab grad auch nochmal ein kleines Programm zusammengesteckt... wie es aussieht hängt das ein bisschen von der externen Belastung des Rechners ab, denn, wenn ich die VI mehrfach starte und die 2 Möglichkeiten gegeneinander laufen lasse gewinnt mal die eine, mal die andere möglichkeit... Array Indizieren - Teilarray ersetzen durch Kommawerte - Lucki - 26.05.2010 15:21 ' schrieb:P.S: Ist die Variante ohne typecast eigentlich schneller? Oder wird der Vorteil durch die Inkrement Operation wieder aufgefressen? Die könnte man ja sogar weglassen wenn es nur ums reine Array initialisieren geht und hätte vermutlich die Variante mit dem geringsten Zeitaufwand."Typecast" ist eine sehr schnelle Oparation, weil dort mit den Daten überhaupt nichts gemacht wird, außer daß ihnen eine andere Typbeschreibung untergeschoben wird. - Aber das ist nicht das, was Du meinst, Du meinst "Konvertierung", und dort vermute ich eine eher umständliche Operation. Increment und Dekrement sind Operationen, für die es bei allen Prozessoren eigene sehr schnelle Maschinenbefehle gibt. Ich gehe mal davon aus, daß LV diese Befehle direkt nutzt und daß die Operationen also schneller sind als eine normale Addition. - Bei Konvertierung von LV9 in frühere Versionen kommt übrigens immer ein Meldung, wenn das VI Inkrement/Dekrement-Funktionen enthält. Ich vermute, daß in LV9 diese Funktionen nochmals optimiert wurden, so daß sie vom Zeitverhalten her nicht mehr identisch sind mit den gleichen Funktionen in früheren Versionen. Array Indizieren - Teilarray ersetzen durch Kommawerte - dimitri84 - 26.05.2010 15:31 ... und deswegen ärgern mich die pauschalisierenden Antworten bei der CLAD-Zertifizierung. Da heißt es einfach: "Konvertieren in der Schleife". Vielleicht stolpert ja rolfk über den Thread ... |