Testando Estabilidade do DATASNAP vs outras ferramentas do mercado
Testando Estabilidade do DATASNAP vs outras ferramentas do mercado
http://datasnapperformance.wordpress.com/
http://datasnapperformance.wordpress.com
http://datasnapperformance.wordpress.com/
http://datasnapperformance.wordpress.com
I do not understand a word. but it looks like a fair comparison. :-)
ReplyDeleteVery useful link! Just learnt about Mormot :)
ReplyDeleteI guess A. Bouchez can comment on the drop of performance of mormot (and possibly also Sparkle) in XE7?
ReplyDeleteStefan Glienke As I wrote in comment in the article, both Sparkle and mORMot do suffer in XE7. I guess there may be some performance regression introduced with XE7.
ReplyDeleteBut it is difficult to say what, since mORMot by-pass most of the RTL for its process, and since there is no thread trick during the process.
The only idea I have (but no proof), is perhaps that class instance allocation is slower in XE7, not due to FastMM4 (which did not change AFAIK and is pretty efficient), but to some low-level RTL "new feature" which may have introduce a giant lock in the RTL. It may be tested easily with a program running 32 threads creating objects in loop.
It is worth saying that this test is very basic: no one would use a REST server to return static "hello word" JSON. From our tests, when working with real data process, including ORM/DB tasks, we did not find any huge slowdown with XE7.
I took the liberty to execute the following loop:
ReplyDeleteprocedure TThreadTest.Execute;
var i: integer;
s: RawByteString;
begin
for i := 1 to OBJ_NUM do begin
TSynCache.Create.Free;
s := '12345';
s[1] := AnsiChar(i mod 10+48);
s[2] := AnsiChar(i mod 10+49);
end;
end;
And there seems to be no regression when creating objects in XE7.
Starting tests on Delphi 2007...
Took 2.49s for creating 200000 objects in 8 threads for an average of 642,281 objects per second
Starting tests on Delphi XE4...
Took 2.58s for creating 200000 objects in 8 threads for an average of 619,116 objects per second
Starting tests on Delphi XE7...
Took 2.51s for creating 200000 objects in 8 threads for an average of 635,302 objects per second
Times diffs are insignificant indeed, thank you for get the tests
ReplyDelete