Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: .net Libnodave unter VM-Ware schneller als unter native Win7

  1. #1
    Registriert seit
    01.05.2010
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich hab ein Programm unter VB.net Framework 4.0 geschmiedet welches Daten (200 Byte per TCP/IP) zyklisch mit Libnodave
    aus der SPS (416-2DP) zieht und anschießend ein Statusword in die SPS schreibt um den Empfang
    zu quittieren. Das läuft soweit ohne Probleme.

    Aber wenn ich die Zeit für einmal lesen und Statuswort schreiben messe
    dann erreiche ich bei einem nativ installierten Win7 32Bit SP1 200 ms
    und bei einem Win7 unter einer VM-Ware 9 ms .

    Kann sich vielleicht jemand vorstellen wieso ??

    Danke
    Ich bin wie ich bin. Die einen kennen mich die anderen können mich.

    Konrad Adenauer
    Zitieren Zitieren .net Libnodave unter VM-Ware schneller als unter native Win7  

  2. #2
    Registriert seit
    14.07.2006
    Beiträge
    20
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Win7 VM Ware ist win7 64bit mit gast XP32bit?

  3. #3
    Registriert seit
    01.05.2010
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nein ist MacOS X mit Parallels Desktop und Win7 SP1 32Bit . Hier benötigt das Programm nur 9ms
    Wenn ich das Programm unter nativ Win7 SP1 32Bit kompiliere und es teste werden 200 ms benötigt.
    Geändert von Zipfelklatscher (01.06.2012 um 21:10 Uhr)
    Ich bin wie ich bin. Die einen kennen mich die anderen können mich.

    Konrad Adenauer

  4. #4
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    Wie sieht denn dein Benchmark aus?

    Es gibt ja x Wege die Zeit zu Messen - mit Latenz zwischen 2-5 uSec und 20-30 mSec ...

    Wie viele Leseoperationen mit Zeit-Durchschnitt machst du denn? unter 100 (besser 1000) mal würde ich keiner Zeit-Messung glauben schenken

    mehr Details?
    Zitieren Zitieren Wie wird denn deine Zeit gemessen?  

  5. #5
    Registriert seit
    27.10.2011
    Ort
    Belgien
    Beiträge
    19
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Oft ist ein VM nicht anstrengend belastet => in diesen Fall nur das TCP/IP Programm, sonst hat win7 immer mehrere Programmen laufende wer in diesen Zeit auch CPU-zeit brauchen. Wenn VM z.B. 40% CPU Zeit bekommt ist das genugend für 5ms, aber wenn Win7 gleichzeitig auch Treibers, Word, Chrome, TwinCAT, VM lauft dan sind 5ms vielleicht nicht genugend für diese Programm Zeitraum zu geben. So wird diese Paradox gelöst.
    Beckhoff Support Engineer

  6. #6
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard

    @Magik_Niq

    Ohne klar zu wissen was er wirklich macht ist das schon sehr spekulativ - oder?
    Klar kann die VM den zugeteilten CPU happen voll nutzen - aber sie muss trotzdem wieder durch dass Host Bestriebssystem durch
    vielleicht laufen auf seinem Win7-System noch andere TCP/IP Blockierer - 9ms zu 200ms ist schon ein sehr grosser Sprung (20 mal so schnell?) den man
    glaube nicht mit Scheduling erklären kann

    Oder seine Zeitmessung ist einfach schlecht
    Zitieren Zitieren bisschen einfach oder?  

  7. #7
    Registriert seit
    27.10.2011
    Ort
    Belgien
    Beiträge
    19
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Zitat Zitat von LowLevelMahn Beitrag anzeigen
    @Magik_Niq

    Ohne klar zu wissen was er wirklich macht ist das schon sehr spekulativ - oder?
    Klar kann die VM den zugeteilten CPU happen voll nutzen - aber sie muss trotzdem wieder durch dass Host Bestriebssystem durch
    vielleicht laufen auf seinem Win7-System noch andere TCP/IP Blockierer - 9ms zu 200ms ist schon ein sehr grosser Sprung (20 mal so schnell?) den man
    glaube nicht mit Scheduling erklären kann
    Ganz abhängig von welche VM, wie es konfiguriert ist und welche Priorität TCP/IP stack hat auf Win7 host. Mit hohe Prio TCP/IP aber kein Prio für .net Programm erklärt es sich so einfach. Aber ich gebe nur eine Möglichkeit in Fall die Zeitmessung richtig ist da:

    Oder seine Zeitmessung ist einfach schlecht
    Du die andere Möglichkeit bereits gegeben hattest. Zwei Sachen zum überprüfen:
    - Zeitmessung,
    - Wie seht die Host Win7 aus.
    Beckhoff Support Engineer

  8. #8
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Hab mal ein kleines Programm angehängt, mit dem hab Ich als schon die Geschwindigkeit verglichen...
    Angehängte Dateien Angehängte Dateien
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Testprogramm  

  9. #9
    Registriert seit
    01.05.2010
    Beiträge
    27
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Bei der Zeitmessung gehe ich folgendermaßen vor.

    Sobald begonnen wird die Daten auszulesen speichere ich mir die aktuelle
    Zeit der CPU weg.
    Sind alle Daten gelesen nehme ich wieder die aktuelle CPU Zeit und ziehe den
    den vorher gespeicherten Wert davon ab.

    Dieses Verfahren müsste eigentlich passen.
    Ich bin wie ich bin. Die einen kennen mich die anderen können mich.

    Konrad Adenauer

  10. #10
    Registriert seit
    22.11.2007
    Beiträge
    731
    Danke
    6
    Erhielt 89 Danke für 62 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Sobald begonnen wird die Daten auszulesen speichere ich mir die aktuelle
    Zeit der CPU weg.
    Wie genau ist denn die Zeiterfassung der CPU (Ist das nicht auch abhängig von der Zykluszeit)? Es macht aber definitiv keinen Sinn deine SPS als Zeitgeber zu benutzen

    1. der Benchmark muss komplett auf dem PC laufen sonst wird ja die Latenz der Hin/Her Kommunikation mit eingebaut
    unter VB.Net kannst du dafür die StopWatch verwenden (http://www.activevb.de/tipps/vbnettipps/tipp0082.html)
    -> alle anderen Zeitmessungs-Varianten sind einfach zu ungenau (teilweise 20-30ms daneben - also schon weit über deinen 9ms)

    2. da es Schwankungen durch SPS,TCP/IP usw. gibt brauchst du eine Schleife die mind. 100 besser 1000 mal deine Abfrage durchspielt (und dann den Durchschnitt ermittelt)
    -> alles andere ist total wertfrei (unabhängig von jedermanns Meinung)

    Jochens ReadSpeedtest begeht leider (soweit richtig gesehen) auch die Benchmark-Todsünde des fehlenden Loops aus Punkt 2

    Wenn du die Teilkonfiguration(welche SPS, DBs/Variablen) mal mitteilst (als PN) würde ich einen AGLink-Benchmark bauen - als Vergleich - würde mich echt interessieren was du da für ein Probleme hast

    Wenn du die Punkte 1-2 nicht so machst kannst du es dir sparen irgendwelche Benchmarks zu posten - die sind dann sowiso relativ sinnlos oder falsch - leider
    Zitieren Zitieren komischer Benchmark  

Ähnliche Themen

  1. Step5 unter Win7 64-bit
    Von M-Arens im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 25.04.2012, 10:56
  2. Step7 in VM unter Win7-64Bit
    Von Larry Laffer im Forum PC- und Netzwerktechnik
    Antworten: 27
    Letzter Beitrag: 01.03.2011, 09:01
  3. CFC unter Win7
    Von paula23 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.11.2010, 22:56
  4. codesys unter win7 installieren?
    Von SirTom78 im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 05.11.2010, 16:11
  5. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •