SVG rendern

Product :4D - 4D Server
OS : Windows
Hallo,

in meiner Applikation nutze ich SVG-Grafiken um ein Datendiagramm auf dem Bildschirm darzustellen. Auf OSX funktioniert das einigermassen aber auf Windows ist das Rendern der Grafik extrem langsam. Der Windows PC ist aber um einiges potenter als der Mac. Ich benutze einen 4D V17r3 32-bit Einzelplatz.

Hardware:
MacBookPro

  • CPU: 3.1GHz Intel Core i7
  • RAM: 8GB DDR3 1867 MHz
  • Grafik: Intel Iris Graphics 6100 1536 MB
  • Harddisk: APPLE SSD SM0512G

vs
Windows Desktop

  • CPU: 3.5GHz Intel Xeon E-2134
  • RAM: 24GB DDR4 1333 MHz
  • Grafik: NVIDIA Quadro P620 2GB
  • Harddisk: SanDisk SSD SD9TB8W256G1001

Das XML der SVG-Grafik ist 238 KB gross. Um die Grafik auf einem Formular auf dem Bildschirm anzuzeigen verwende ich den Befehl:
SVG EXPORT TO PICTURE($diagram;y_multigraph;0)
Dies dauert:

OSX: 1.4 sec.
Windows: 3 sec.

Wenn das Bild bei einer Grössenänderung des Formulars dauernd neu gezeichnet werden muss kommt das Programm ins Stocken.

ist dieses Verhalten bekannt, resp. gibt es eine Lösung um die Performance auf Windows zu steigern?

: Andreas MENZI

SVG EXPORT TO PICTURE($diagram;y_multigraph;0)

Ich würde einen anderen ExportType (3. Parameter) probieren.

Bei unseren SVG-Tests hatten wir SVGs mit knapp 400 kB, also vergleichbare Größe.
Geschwindigkeit mit 4Dv17.1 64bit auf Win10:

ExportType 0: 260 ms
ExportType 1: 50 ms
ExportType 2: 0 ms
Kein ExportType: 50 ms

In der Doku steht: ExportType 0 ist signifikant schneller.
Außerdem steht dort: Default-ExportTyp ist 2.

Beides stimmt nicht mit unseren Beobachtungen überein.
Stattdessen scheint zu gelten:

ExportType 0 ist signifikant langsamer.
Default-ExportTyp ist 1.

Vielen Dank für’s Feedback. Das Problem ist nicht die Ausführung der Befehlszeile an und für sich sondern das Anzeigen auf dem Formular. Die Variable “y_multigraph” ist eine Bildvariable auf einem Formular. Bei mir braucht die Ausführung der Befehlszeile 12ms, sobald die Formularmethode fertig ist braucht 4D aber die 3 Sek. bis das Bild auf dem Formular effektiv angezeigt wird.
Ist doch komisch?

benötigt 4d solange oder windows, wie lange dauert die darstellung des svg bildes unter
einem 32bit browser zum beispiel?

Das ist seltsam. Da müsste man das konkrete SVG haben, um zu testen.

Unser SVG besteht nur aus tausenden Strichen, Vierecken und Texten.

Vielleicht enthält ja Ihr SVG irgendwelche Sachen, die erst bei der Anzeige aus dem Web geladen werden müssen.
Oder in der Formularmethode ist irgendwas drin, vielleicht ein vergessenes Delay zu Testzwecken…