30.11.2008, 19:28
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Clusterarrays synchronisieren
Danke dir, es spart mir 8 Sekunden auf meinem Rechner. Die alte Version hat 20 Sekunden gebraucht und deine 12 Sekunden.
|
|
|
01.12.2008, 10:13
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Clusterarrays synchronisieren
' schrieb:Danke dir, es spart mir 8 Sekunden auf meinem Rechner. Die alte Version hat 20 Sekunden gebraucht und deine 12 Sekunden.
Gut, aber was ich noch sagen wollte: Mein Rechner ist schon älter und nicht besonders schnell. Wenn es trotzdem bei mir schneller läuft, dann vielleicht deshalb, weil ich LV8.6 benutzt habe.
|
|
|
01.12.2008, 22:51
(Dieser Beitrag wurde zuletzt bearbeitet: 01.12.2008 22:53 von Lucki.)
|
|
|
02.12.2008, 01:28
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Clusterarrays synchronisieren
Oh ja, je tiefer man selbst programmiert umso schneller ist die Ausführung des Code. Habe nun die von mir nicht beliebte State Machine aus deinem tollen Vorschlag entfernt, aber trotzdem nichts an Zeit gewonnen.
Ich glaube man kann nicht mehr viel machen (evtl. noch die In Place Struktur, aber glaube ich nicht).
Bei dir ist das Error Cluster schon mal nicht vorhanden, das spart sicherlich sehr viel Zeit, außerdem ist das automatische Unflatten From Binary mit Type Cast ersetzt, was bestimmt auch etwas CPU Takte spart.
Also vielen Dank nicht nur für den Vorschlag, sondern auch für die gemachte Erfahrung (siehe ersten Satz).
Gruß, eg
GSM_Parse.zip (Größe: 2,64 MB / Downloads: 188)
|
|
|
07.12.2008, 00:36
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Clusterarrays synchronisieren
' schrieb:ich habe noch etwas gebastelt (Grundlage GSM-Parse-File/Lucki) und eine Dual-Core Version erstellt. Ergebnis ~300ms/~20% schneller.
Nachteil: mehr Speicherbedarf siehe Anhang.
Sehr interessant, leider habe ich mein LabVIEW nicht auf einer Dual-Core Maschine und kann das nicht vergleichen. Bei mir kommt in beiden Fällen ca 1.8sec heraus, wobei ich allerdings das Einlesen der Datei mit in die Zeit einbeziehe.
Der Mehrbedarf an Speicher muß überhaupt nicht sein, das liegt doch nur daran, daß Du erst die gesamte Datei einliest und dann die Datei in zwei Telíle splittest, wodurch nochmal eine Kopie der Daten entsteht.
Besser ist es, die Datei von vornherein in zwei Hälften einzulesen. Habe das unten mal versucht. (Diese lästigen Elemente mit Typdefinition habe ich ausgetauscht)
GSM_Parse_File_Dual_Core_WA.vi (Größe: 42 KB / Downloads: 169)
|
|
|
07.12.2008, 09:34
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Clusterarrays synchronisieren
' schrieb:@Lucki
Ein kleiner Fehler ist mir jedoch aufgefallen. Close File fehlt (Speicherleck) oder hab ichs übersehen?
Bis Du hier nicht ein wenig zu streng? Ist das nicht eher eine "kleine Nachlässigkeit"? Ich hatte mal eine Reklamation, allerdings war das beim Schreiben in eine Datei. Zwar hatte ich die Datei wieder geschlossen, aber erst am Ende des Programms. Die Folge war, daß Excel nicht auf die Datei zugreifen konnte, solange das LV Prog noch lief. Aber hier beim Lesen, was soll da passieren? Was meinst Du mit "Speicherleck"?
|
|
|
07.12.2008, 09:58
|
rasta
LVF-Gelegenheitsschreiber
Beiträge: 245
Registriert seit: Oct 2006
LabVIEW 2009-2017
2006
EN
53909
Deutschland
|
Clusterarrays synchronisieren
Hallo Lucki
Zitat: "Bis Du hier nicht ein wenig zu streng?" - Nein
Aber es ist mir beim Post an den falschen Adressaten gerutscht, du hattest ja geschrieben das noch kleine Fehler enthalten sein können.Sorry
Mit Speicherleck meine ich wenn die Applikation tagelang läuft und hunderte Dateien geöffnet (Referenz) und nicht wieder geschlossen (freigegeben) werden, dass dann halt der Speicher leckt.
Gruß
Ralf
|
|
|
| |