Hallo zusammen
Ich bin hier allmälich am verzweifeln. Ich muss mit Delphi7 auf einen C# WCF Webservice zugreifen. Im Vordergrund steht hier vor allem die Geschwindigkeit. Deshalb bin ich überall am sparen wos nur geht. Ich hab verschiedene Tests gemacht sowohl mit
SOAP wie auch mit REST. Kurz und Knapp : Der Webservice hat eine Funktion Find(..) als Rückgabe werden verschiedene IDs erwartet.
Ich bevorzuge hier eigentlich REST um den Overhead möglichst gering zu halten. Mittels TIdHttp Komponente setze ich folgendes GET ab: "http://
localhost:8080/Web/Find?text=blablabla". Ich hab den Prototyp so eingestellt, dass mir jeweils die ersten 1000 gefundenen IDs zurückgegeben werden. Die IDs werden als Komma separierten
ASCII String zurückgegeben. Das ganze funktioniert eigentlich soweit ganz gut. Nur habe ich so meine Bedenken was die Geschwindigkeit angeht. Bei dieser Variante schwanken die Antwortzeiten ganz schön...
Die Suche ist immer dieselbe der Server hat jeweils ca. 644ms Sekunde um die Suche abzuarbeiten, der Rest ist eigentlich der Kommunikationsaufwand, welchen ich möglichst gering halten möchte...
(Antwortzeiten in ms)
1279,
1264, 671,
1263, 671,
1279, 671, 671, 670, 671
Dasselbe habe ich nun noch mit
SOAP gemacht (RPC Encoded) und gibt mir folgende Zeiten
(Antwortzeiten in ms)
811, 811, 780, 780, 749, 749, 733, 749, 734, 733
Eigentlich habe ich erwartet, dass die REST Variante schneller ist. Wenn ich den Client auch mit C# schreibe, dann sind beide Varianten ungefähr gleich schnell. REST ein kleines bisschen schneller. Das müsste sich ja bei DELPHI genau so verhalten? Wenn ich die REST
URL im Browser eingebe dauert es nie länger 656ms.
Warum schwankt TIdHttp.Get() so stark ? -> Irgendwie habe ich das Dumpfe Gefühl, dass es an der Komponente liegt. Hab deshalb auf
Indy 9.0.18 geupdatet, was leider auch nichts gebracht hat. Des weiteren habe ich die synopsis Komponenten mit der Funktion HttpGetText getestet. Die war leider auch nicht schneller und wies ähnliche Schwankungen auf. (Was eigentlich gegen meine Vermutung spricht).
Da ist was faul... aber was? - Es kann ja nicht sein, dass
SOAP hier schneller ist. Es müsste mindestens gleich schnell sein. Bauchweh machen mir vorallem die starken Schwankungen. Machmal dauert es einfach doppelt solange wie sonst...
Hat jemand eine Idee was ich noch versuchen kann, oder wo das Problem liegen könnte ?
Liebe Grüsse
& Danke im Voraus