Erstellen eines Großen Array (ohne Autoindizierung)
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Erstellen eines Großen Array (ohne Autoindizierung)
' schrieb:ja, siehst du richtig- und die größe ist 250000 auf 5. die Stings in jedem feld haben im allg 7 zeichen (also 250000*5*7=8,75 MB)
1.25 Mio Strings.
Richtig(er) ist die Rechnung so: 250000*5*(7 + 4+4+4). Also mehr Overhead als Nutzdaten.
Bist du dir im Klaren, was du dem Rechner und dem armen LV damit antust? String ist ein aufwändiger Datentyp. Da sollte es mich nicht wundern, wenn alleine das Erstellen des Arrays schon eine Sekunde dauert. Eine Abzweigung im Datenfluss kannst du mit solch einen Array nicht machen.
Kannst du die Daten nicht als Zahlen speichern? Int64 oder Double? Sollten es nur sieben Zeichen sein (das immer vorhandene X und das Tab-Zeichen kann man anders "implementieren"), könnte ein böser Trick mit einer harten Konvertierung von String nach Int64 funktionieren.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Erstellen eines Großen Array (ohne Autoindizierung)
Ok, ich konvertiere mal alle strings in zahlen (wie schon gesagt, bin ein blutiger Anfänger - und mit Rechnern hab ich es sowiso nicht so - das ich kein Informatiker bin, ist sicher schon aufgefallen).
Aber das Problem mit dem Speichern ohne den array aufzurufen ist damit doch immernochnicht gelöst, oder?
Ach ja, gibts hier eigendlich nen chatroom?
Dominik
Erstellen eines Großen Array (ohne Autoindizierung)
' schrieb:Ok, ich konvertiere mal alle strings in zahlen
Ja stehen denn in den Strings Zahlen drinnen? (Dann geht das auch mit Standardmitteln.)
Zitat:Aber das Problem mit dem Speichern ohne den array aufzurufen ist damit doch immernochnicht gelöst, oder?
Das Problem ist: Ohne "Aufzurufen" kannst du nichts speichern. So wie du das im Bild gezeigt hast, ist das optimal: Vor der Schleife einmalig(!) erstellen, in der Schleife werden die Datem im Schieberegister gehalten, zum Speichern(!) wird die Funktion "In Array ersetzen" verwendet.
Eine weitere Frage ist: Wie lange braucht (das arme) LV um das Array nach der Schleife am FP darzustellen.
Zitat:Ach ja, gibts hier eigendlich nen chatroom?
Da gibts was oder ist was angedacht. eg schreibt da gerade was. Warte lieber auf eine Antwort von Mod oder Admin.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Erstellen eines Großen Array (ohne Autoindizierung)
[Ganz genau kann ich gar nicht sagen wiel lange LV brauch tum den array zu erstelen- grob überschlagen 8 stunden. un ja, in dem string sin zahlen drin, bzw jetzt habe ich die inhalte zu Floatzahlen konvertiert.
Grüße
Dominik
Zu sehen ist:
1. Zeit zum Erstellen des Arrays (einmal DBL, einmal String), klar ist String um Welten langsamer, aber ich lande doch bei noch erträglichen 500ms zur Initialisierung.
2. Dann der Durchlauf (2 Mio mal) mit Hilfe der Zufallszahlen, wobei dann ca. 1 Mio mal was ersetzt wird. String ungefähr 16mal langsamer, aber ist doch immer noch nicht im Stunden-Bereich.
MfG, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Erstellen eines Großen Array (ohne Autoindizierung)
Hi Jens
Hey - ich weis nicht wie ich dir danken soll - ich hab mein Programm nach deiner Vorlage umstrukturiert (sequenz, "To lon integer" und habe meine Anzeige (im schleifendurchlauf rausgenommen- was einer der fehlereinflüsse war, aber nicht der einzige) - Und es FUNKTIONIERT!!! Jujuuuu!!!!
(ich dachte echt schon ich muss das Programm immer nachts laufen lassen).
Also - vielen Dank von einem ultraerleichtertem Student im Praxissemester
MFG
Dominik
Anzeige
14.03.2008, 17:12 (Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2008 17:13 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Erstellen eines Großen Array (ohne Autoindizierung)
Krass, wieso kriege habe ich im Vergleich so niedrige Werte (vor allem "ms-String-Array")? Hast Du auch 'nen Dual-Core zum Testen verwendet?
Gruß Markus
' schrieb:8 Stunden??? Was machst du noch in deiner Schleife?
Was sind denn deine Rechnerdaten?
Ich habe mal einen Vergleichstest gestartet mit den von dir angegebenen Maximalwerten: 250000 x 5 Werte, hier die Ergebnisse:
[attachment=38756:Image01.png]
[attachment=38757:Untitled8.2_mod.vi]
Zu sehen ist:
1. Zeit zum Erstellen des Arrays (einmal DBL, einmal String), klar ist String um Welten langsamer, aber ich lande doch bei noch erträglichen 500ms zur Initialisierung.
2. Dann der Durchlauf (2 Mio mal) mit Hilfe der Zufallszahlen, wobei dann ca. 1 Mio mal was ersetzt wird. String ungefähr 16mal langsamer, aber ist doch immer noch nicht im Stunden-Bereich.
MfG, Jens
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Erstellen eines Großen Array (ohne Autoindizierung)
' schrieb:Krass, wieso kriege habe ich im Vergleich so niedrige Werte (vor allem "ms-String-Array")?
Hast du das VI mindestens fünfmal direkt hintereinander laufen lassen? Bei mir war da auch zuerst was um die 4 Sekunden. Am Schluss waren es doch 16 Sekunden.
Zitat:Hast Du auch 'nen Dual-Core zum Testen verwendet?
Mein Laptop hat keinen DualCore.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Erstellen eines Großen Array (ohne Autoindizierung)
Bei mir sind es nach schon beim 3. Mal über 35 Sekunden......
Gruß Markus
' schrieb:Hast du das VI mindestens fünfmal direkt hintereinander laufen lassen? Bei mir war da auch zuerst was um die 4 Sekunden. Am Schluss waren es doch 16 Sekunden.
Mein Laptop hat keinen DualCore.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------