09.04.2007, 10:14
Hallo,
ich stehe vor einem (für meine Verhältnisse) etwas grösserem Projekt. Es geht darum, ein Programm zu schrieben, was Graphen aus Textdateien läd und einige Tools zur Bearbeitung bereitstellt. Es sollen also Bereiche aus den Graphen editiert werden können (Punkte markieren, verschieben, löschen, ausklingen lassen, etc) und auch mehrere Graphen voneinader abgezogen oder miteinander multipliziert werden können.
Nun stehe ich vor dem Problem, daß ich recht viele Daten speichern muss und keine Lust habe, 10 bis 20 Drähte von einem Shift-Register zum nächsten zu ziehen (und dann auch noch durch alle Event-Cases). Man könnte diese zwar bündeln aber das ist in meinen Augen auch mehr eine Scheinlösung, da ich dann ständig am bündeln und entbündeln bin.
Am elegantesten erscheinen mir dehalb lokale/globale bzw. funktionale globale Variablen.
Allerdings habe ich in mehreren Texten gelesen, daß man, wenn möglich, auf globale Variablen verzichten sollte, weil:
1. schlechter Programmierstil (sehe ich ein)
2. zu langsam, da Kopie von den Daten angelegt wird
Stattdessen werden funktionale globale Variablen empfohlen, weil diese keine Kopien anfertigen.
Ich habe mal ein paar Geschwindigkeitstests gemacht (VI siehe Anhang) und dabei kam folgendes raus:
1.Platz: lokale Variable: 11 .. 12s
2.Platz: funktionale globale Variable: 14s
3.Platz: globale Variable: 17s
was mich hier verwundert, ist daß die lokale Variable schneller ist als die funktionale globale Variable. Ist das normal, oder habe ich was falsch gemacht?
im Anhang:
main lokale Variable.VI --> Testprogramm lokale V.
main functional global.VI --> Testprogramm funktinale globale V.
functional global.VI --> funktinale globale V.
Gibt es noch witere Ideen, die vielen Shift-Register zu vermeiden?
Danke im Voraus
und frohe Restostern!
ich stehe vor einem (für meine Verhältnisse) etwas grösserem Projekt. Es geht darum, ein Programm zu schrieben, was Graphen aus Textdateien läd und einige Tools zur Bearbeitung bereitstellt. Es sollen also Bereiche aus den Graphen editiert werden können (Punkte markieren, verschieben, löschen, ausklingen lassen, etc) und auch mehrere Graphen voneinader abgezogen oder miteinander multipliziert werden können.
Nun stehe ich vor dem Problem, daß ich recht viele Daten speichern muss und keine Lust habe, 10 bis 20 Drähte von einem Shift-Register zum nächsten zu ziehen (und dann auch noch durch alle Event-Cases). Man könnte diese zwar bündeln aber das ist in meinen Augen auch mehr eine Scheinlösung, da ich dann ständig am bündeln und entbündeln bin.
Am elegantesten erscheinen mir dehalb lokale/globale bzw. funktionale globale Variablen.
Allerdings habe ich in mehreren Texten gelesen, daß man, wenn möglich, auf globale Variablen verzichten sollte, weil:
1. schlechter Programmierstil (sehe ich ein)
2. zu langsam, da Kopie von den Daten angelegt wird
Stattdessen werden funktionale globale Variablen empfohlen, weil diese keine Kopien anfertigen.
Ich habe mal ein paar Geschwindigkeitstests gemacht (VI siehe Anhang) und dabei kam folgendes raus:
1.Platz: lokale Variable: 11 .. 12s
2.Platz: funktionale globale Variable: 14s
3.Platz: globale Variable: 17s
was mich hier verwundert, ist daß die lokale Variable schneller ist als die funktionale globale Variable. Ist das normal, oder habe ich was falsch gemacht?
im Anhang:
main lokale Variable.VI --> Testprogramm lokale V.
main functional global.VI --> Testprogramm funktinale globale V.
functional global.VI --> funktinale globale V.
Gibt es noch witere Ideen, die vielen Shift-Register zu vermeiden?
Danke im Voraus
und frohe Restostern!