BEDINGTE Freigabe der macOS Version Sequoia für tomedo® Alle Hinweise und Informationen finden Sie unter folgendem Link.
Hinweis: Zukünftige iOS tomedo Updates werden nur noch auf Geräten mit iOS 16 oder höher verfügbar sein.

Liebe Entwickler,

die tomedo.app benötigt relativ lange, um Updates von unserem tomedo-Server zu laden.
(knapp 1,5 Minuten trotz Gigabit-Netzwerk).
Da das deutlich unter dem maximal möglichen Datendurchsatz liegt, habe ich dieses Phänomen untersucht und eine Optimierung entdeckt:

Mit deaktivierter HTTP-Kompression kann tomedo das Update 5 mal schneller herunterladen! smiley
Vermutlich würden sich sehr viele Kunden freuen, wenn man ein derartiges "Turbo-Update" über eine tomedo-Einstellung ein- oder ausschalten könnte (falls ja, dann bitte diesen Beitrag liken!).

Hier die technische Erläuterung für Nerds...

Die tomedo.app erfragt beim Update eine komprimierte Übertragung mittels HTTP-Header "Accept-Encoding: gzip,deflate":

GET /tomedo_live/filebyname/serverinternal/tomedo.app.tar HTTP/1.1
Host: tomedo.radiologie-lippstadt.de:8080
Content-Type: application/json
x-api-key: tomedo
Accept: */*
clientId: mac81 04:9D:05:17:E5:5C /Users/radiologie/Library
Accept-Language: de-DE,de;q=0.9
User-Agent: tomedo/629a6e8a55 CFNetwork/1498.700.2 Darwin/23.6.0
Accept-Encoding: gzip, deflate
Connection: keep-alive

Worauf der tomedo-Server auch eine komprimierte Datei liefert:

HTTP/1.1 200 
clientId: mac81 04:9D:05:17:E5:5C /Users/radiologie/Library
Content-Disposition: attachment; filename=tomedo.app.tar
vary: accept-encoding
Content-Encoding: gzip
Content-Type: multipart/mixed
Transfer-Encoding: chunked
Date: Thu, 16 Jan 2025 07:42:49 GMT
Keep-Alive: timeout=60
Connection: keep-alive

Wenn ich diese Anfrage im Terminal rekonstruiere, erhalte ich einen Datendurchsatz, der mit dem Durchsatz der tomedo.app vergleichbar ist (1 Minute 22 Sekunden):

$ curl -H "Accept-Encoding: gzip" -O http://tomedo:8080/tomedo_live/filebyname/serverinternal/tomedo.app.tar 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  589M    0  589M    0     0  7332k      0 --:--:--  0:01:22 --:--:-- 4790k

Schalte ich nun die Kompression über den HTTP-Header "Accept-Encoding: identity" ab, dann wird der Download deutlich beschleunigt (nur noch 15 Sekunden), obwohl die unkomprimierte Datei 2,5 mal größer ist:

$ curl -H "Accept-Encoding: identity" -O http://tomedo:8080/tomedo_live/filebyname/serverinternal/tomedo.app.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1529M    0 1529M    0     0  99.5M      0 --:--:--  0:00:15 --:--:--  103M

Auch ohne "Accept-Encoding"-Header findet ein schneller Download statt.

(siehe Accept-Encoding)

Der Flaschenhals ist also scheinbar der Kompressionsvorgang des Servers, nicht die Geschwindigkeit des Netzwerkes.

Sogar wenn man tomedo vom offiziellen Demo-Server aus dem Internet läd, ist der unkomprimierte Download deutlich schneller:

$ curl -O -H "Accept-Encoding: gzip" http://allgemeinmedizin.demo.tomedo.org:8080/tomedo_live/filebyname/serverinternal/tomedo.app.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  586M    0  586M    0     0  13.9M      0 --:--:--  0:00:41 --:--:-- 9801k
$ curl -O -H "Accept-Encoding: identity" http://allgemeinmedizin.demo.tomedo.org:8080/tomedo_live/filebyname/serverinternal/tomedo.app.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1567M    0 1567M    0     0  61.7M      0 --:--:--  0:00:25 --:--:-- 61.3M

 


Viele Grüße
Björn Albers

 

Gefragt vor in Wunsch von (980 Punkte)
Bearbeitet vor von
+6 Punkte
Vielen Dank für Ihren Einsatz!!!

Ich verbreite die Information und melde mich.

P. Steinbach
ich vermute die Übertragung einer Archivdatei soll die Fehlerrate reduzieren. Da tomedo inzwischen ca. 1,6 GB groß geworden ist dauert das Packen und Entpacken natürlich ein Weilchen ....

1 Antwort

Beste Antwort
Sehr geehrter Herr Albers,

vielen, vielen Dank für Ihre Mühe und Ihren Einsatz.

Das Thema hat auf jeden Fall zu Diskussionen geführt, die zu weiterführenden Überlegungen führen und Maßnahmen zur Verbesserung der Performance mit sich ziehen könnten.

Es lässt sich jedoch zusammenfassend sagen, dass es sich etwas komplexer verhält, als es hier den Anschein macht.

Das Update des Clients wäre dann nicht 500% schneller. Einzig der Teil des Downloads vom Server. Den Anteil, der das Laden der Basisdaten und der Anhänge betrifft, wird davon nicht beeinflusst.

Es wurden einige Überlegungen angestellt und konstruktiv diskutiert. Wir werden die Performance des lokalen Updates nochmals durchleuchten. Wir werden aber auch abwägen, wie sehr Neuerungen an diesem Prozess Gefahren für Fehler mit sich bringen könnten.

Danke für den inspirierenden Beitrag, der auch uns etwas Neues beibringen konnte.

Mit freundlichen Grüßen

P. Steinbach
Beantwortet vor von (2.1k Punkte)
ausgewählt vor von
+1 Punkt
18,600 Beiträge
26,895 Antworten
48,285 Kommentare
29,668 Nutzer