![]() |
Erstellen eines Großen Array (ohne Autoindizierung) - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Erstellen eines Großen Array (ohne Autoindizierung) (/Thread-Erstellen-eines-Grossen-Array-ohne-Autoindizierung) |
Erstellen eines Großen Array (ohne Autoindizierung) - IchSelbst - 13.03.2008 15:32 ' 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. Erstellen eines Großen Array (ohne Autoindizierung) - Dominik_P84 - 13.03.2008 15:43 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) - IchSelbst - 13.03.2008 16:47 ' schrieb:Ok, ich konvertiere mal alle strings in zahlenJa 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. Erstellen eines Großen Array (ohne Autoindizierung) - Dominik_P84 - 13.03.2008 17:01 [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 Erstellen eines Großen Array (ohne Autoindizierung) - jg - 13.03.2008 17:16 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=11607] ![]() 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 Erstellen eines Großen Array (ohne Autoindizierung) - Dominik_P84 - 14.03.2008 12:12 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 Erstellen eines Großen Array (ohne Autoindizierung) - Y-P - 14.03.2008 17:12 Krass, wieso kriege habe ich im Vergleich so niedrige Werte (vor allem "ms-String-Array")? Hast Du auch 'nen Dual-Core zum Testen verwendet? [attachment=11616] Gruß Markus ' schrieb:8 Stunden??? Was machst du noch in deiner Schleife? Erstellen eines Großen Array (ohne Autoindizierung) - IchSelbst - 14.03.2008 19:11 ' 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. Erstellen eines Großen Array (ohne Autoindizierung) - Y-P - 14.03.2008 20:48 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. Erstellen eines Großen Array (ohne Autoindizierung) - IchSelbst - 14.03.2008 22:09 ' schrieb:Bei mir sind es nach schon beim 3. Mal über 35 Sekunden......Das sind ja 100% mehr ![]() Steigt das noch an bis zum 6. Mal? PIV, ca. 3GHz, ca. 1GB? Stichwort: Speichermanager und CarbageCollection (oder wie das wieder heißt). |