23.07.2009, 14:26
Beitrag #1
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
VISA open und VISA close
Hallo zusammen,
ich habe gerade mal einen kleinen Geschwindigkeitsvergleich gemacht. Dabei habe ich über VISA-VIs einen COM-Port ausgelesen. Einmal habe ich zu beginn VISA Open und am Ende VISA Close eingefügt. Dann das ganze ohne die beiden Funktionen. Das ganze habe ich 100 mal pro methode hintereinander laufen lassen.
Ergebnis:
Methode 1 mit Open und Close: 36.589ms
Methode 2 ohne Open und CLose: 6.182ms
Da stellt sich mir die Frage, warum das so lange dauert. Und natürlich, ob ich das wirklich brauche? Schließlich bekomme ich meine Daten auch ohne Open und Close.
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
23.07.2009, 15:22
Beitrag #2
|
A.Berndsen
LVF-Team
Beiträge: 2.437
Registriert seit: Feb 2005
8.2.1 - 2011
2004
DE
724xx
Deutschland
|
VISA open und VISA close
Mir ist etwas nicht klar geworden.
Hast Du im Test 100 mal die Funktionen Visa Open und Visa Close ausgeführt?
Das würde ja keinen Sinn machen!
Grüße
Andreas
|
|
|
23.07.2009, 15:29
Beitrag #3
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
VISA open und VISA close
Ich habe zwei VIs gebastelt.
1.
visa open
visa config
visa write
visa read
visa close
2.
visa config
visa write
visa read
Dann habe ich Methode 1 100 mal ausgeführt und die Zeit gestoppt, anschließend Methode 2 100 mal ausgeführt. Funktionieren tut Beides. Methode 1 dauert ungefähr 5 mal so lange wie Methode 2. Jetzt frage ich mich, was open und close genau macht und ob ich es brauche!
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
23.07.2009, 15:54
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2009 15:54 von A.Berndsen.)
Beitrag #4
|
A.Berndsen
LVF-Team
Beiträge: 2.437
Registriert seit: Feb 2005
8.2.1 - 2011
2004
DE
724xx
Deutschland
|
VISA open und VISA close
Aus meiner Sicht ist der Test so unsinnig, da Du ja niemals in einem Programm 100mal Visa Open und Visa Close zusammen mit den Schreib- und Leseoperationen verwenden würdest.
Mach den Test doch mal etwas realitätsnaher.:)Wie der Zeitunterschied dann aussieht?
1.
visa open
visa config
100x (
visa write
visa read )
visa close
2.
visa config
100x (
visa write
visa read )
Bin gespannt, was dabei rauskommt. Ich muß allerdings erwähnen, daß ich das VISA Open z.B. bei serieller Kommunikation auch selten verwende. VISA Close jedoch immer. Das ist auch nicht unbedingt konsequent.
Vielleicht kann Rolf erklären was VISA Open bewirkt.
Grüße
Andreas
|
|
|
23.07.2009, 17:16
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2009 17:19 von TSC.)
Beitrag #5
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
VISA open und VISA close
werde das morgen mal durch mein speedtest vi jagen
aber so unrealistisch ist das gar nicht. hier gibts ein vi, welches eben genau wie in methode 1 beschrieben einen sensor ausliest. dieses vi ist in einer schleife eingebunden in der die entsprechenden adressen übergeben werden zusammen mit den befehlen was gesendet werden soll.
ich weiß dass das nicht schön ist, aber das sind altlasten von vor meiner zeit mit denen ich mich leider viel zu oft rumschlagen muss.
naja, und ich arbeite eben grade daran das alles schöner zu machen und das war ein punkt der mir auffiel. natürlich hab ich dann erstmal getestet, ob sich die arbeit lohnt, oder ob es insgesamt nur ein paar ms sind die man sparen würde. der test hat gezeigt, dass ein deutlicher unterschied ist. und dann kam die frage in mir auf, warum ich das überhaupt öffne und schließe.
das programm läuft nur auf einem speziellen messrechner der fest in einem versuchsaufbau integriert ist und keine anderen programme laufen hat. also ists auch egal wenn der port dann irgendwie blockiert ist oder sowas. aber so wie ich das sehe, ist der port auch ohne close nach programmende wieder verfügbar.
LG
Torsten
EDIT:
dein testvorschlag wird keinen großen unterschied machen, da sich ja die zeitdifferenz nicht aufaddiert. der teil der hundert mal wiederholt wird, ist ja identisch. oder meinst du, dass ein geöffneter com port schneller zugreifbar ist?
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
23.07.2009, 17:21
(Dieser Beitrag wurde zuletzt bearbeitet: 23.07.2009 17:23 von A.Berndsen.)
Beitrag #6
|
A.Berndsen
LVF-Team
Beiträge: 2.437
Registriert seit: Feb 2005
8.2.1 - 2011
2004
DE
724xx
Deutschland
|
VISA open und VISA close
' schrieb:EDIT:
dein testvorschlag wird keinen großen unterschied machen, da sich ja die zeitdifferenz nicht aufaddiert. der teil der hundert mal wiederholt wird, ist ja identisch. oder meinst du, dass ein geöffneter com port schneller zugreifbar ist?
Das ist ja genau das was ich meine. Sinvoll programmiert ergeben sich bestimmt kaum messbare Unterschiede. Der vorher geöffnete Com-Port wird die Schreib- Leseoperation nicht beinflussen.
Grüßle
Andreas
|
|
|
23.07.2009, 17:32
Beitrag #7
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
VISA open und VISA close
joa, dann sind wir uns ja einig. trotzdem interessiert mich noch, warum ich ihn überhaupt öffnen und schließen sollte?!
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
23.07.2009, 19:22
Beitrag #8
|
|
|
24.07.2009, 07:45
Beitrag #9
|
TSC
LVF-Team
Beiträge: 1.882
Registriert seit: Sep 2008
LV 2018 SP1
2008
EN
52379
Deutschland
|
VISA open und VISA close
da frage ich mich doch was ich gestern bei der suche verbaut habe?! Danke für das Blindenhundspielen. Im Prinzip dachte ich es mir ja auch genau so. Schade nur dass ich damit so gar ncihts anfangen kann. Nu muss ich erst mal wieder denken!
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" ( Konrad Zuse)
|
|
|
24.07.2009, 08:02
|
IchSelbst
LVF-Guru
Beiträge: 3.692
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
VISA open und VISA close
' schrieb:da frage ich mich doch was ich gestern bei der suche verbaut habe?! Danke für das Blindenhundspielen. Im Prinzip dachte ich es mir ja auch genau so. Schade nur dass ich damit so gar ncihts anfangen kann. Nu muss ich erst mal wieder denken!
Die Sache ist sogar logisch: Ein Open muss gemacht werden. Ein Open hat nämlich zur Folge, dass die Schnittstelle für einen Prozess (Applikation etc.) reserviert bleibt. Ist die Schnittstelle nicht reserviert, könnte dir jeder andere innerhalb des Betriebssystems die Schnittstelle "wegnehmen". Dann geht selbst ein Open nicht mehr.
Machst du vor einem Rd/Wr kein Open, macht das Rd/Wr-VI den Open automatisch. Halt deswegen, weil LV eine "intuitive Programmiersprache" ist und deshalb alles von alleine gehen muss. Der Close an sich geht auch automatisch: Guckst du in den Optionen der IDE: "Visa-Sessions automatisch schließen beim Beenden der Applikation"
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
| |