RDP1974 40 Posted October 21 (edited) hi, I have done a more extended sample, with webbroker indy http server, json parsing, data serialize to firedac memtable and populate a response, using threadvar blobs single request > 1 request 1 thread: ab -n 1 -c 1 -k http://192.168.1.110:8080/ default Concurrency Level: 1 Time taken for tests: 0.003 seconds Complete requests: 1 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 43146 bytes HTML transferred: 43008 bytes Requests per second: 287.27 [#/sec] (mean) Time per request: 3.481 [ms] (mean) Time per request: 3.481 [ms] (mean, across all concurrent requests) Transfer rate: 12104.21 [Kbytes/sec] received rdp64 intel tbb Concurrency Level: 1 Time taken for tests: 0.003 seconds Complete requests: 1 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 43146 bytes HTML transferred: 43008 bytes Requests per second: 287.44 [#/sec] (mean) Time per request: 3.479 [ms] (mean) Time per request: 3.479 [ms] (mean, across all concurrent requests) Transfer rate: 12111.17 [Kbytes/sec] received msheap Concurrency Level: 1 Time taken for tests: 0.005 seconds Complete requests: 1 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 43146 bytes HTML transferred: 43008 bytes Requests per second: 191.57 [#/sec] (mean) Time per request: 5.220 [ms] (mean) Time per request: 5.220 [ms] (mean, across all concurrent requests) Transfer rate: 8071.79 [Kbytes/sec] received fastmm5 Concurrency Level: 1 Time taken for tests: 0.005 seconds Complete requests: 1 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 43146 bytes HTML transferred: 43008 bytes Requests per second: 191.64 [#/sec] (mean) Time per request: 5.218 [ms] (mean) Time per request: 5.218 [ms] (mean, across all concurrent requests) Transfer rate: 8074.89 [Kbytes/sec] received > multi thread test > 100 requests 100 threads: ab -n 100 -c 100 -k http://192.168.1.110:8080/ default: Concurrency Level: 100 Time taken for tests: 1.549 seconds Complete requests: 100 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 4314600 bytes HTML transferred: 4300800 bytes Requests per second: 64.56 [#/sec] (mean) Time per request: 1548.967 [ms] (mean) Time per request: 15.490 [ms] (mean, across all concurrent requests) Transfer rate: 2720.18 [Kbytes/sec] received rdp64 intel tbb Concurrency Level: 100 Time taken for tests: 0.063 seconds Complete requests: 100 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 4314600 bytes HTML transferred: 4300800 bytes Requests per second: 1596.37 [#/sec] (mean) Time per request: 62.642 [ms] (mean) Time per request: 0.626 [ms] (mean, across all concurrent requests) Transfer rate: 67262.80 [Kbytes/sec] received msheap Concurrency Level: 100 Time taken for tests: 0.070 seconds Complete requests: 100 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 4314600 bytes HTML transferred: 4300800 bytes Requests per second: 1431.02 [#/sec] (mean) Time per request: 69.880 [ms] (mean) Time per request: 0.699 [ms] (mean, across all concurrent requests) Transfer rate: 60295.89 [Kbytes/sec] received fastmm5 Concurrency Level: 100 Time taken for tests: 0.110 seconds Complete requests: 100 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 4314600 bytes HTML transferred: 4300800 bytes Requests per second: 909.90 [#/sec] (mean) Time per request: 109.902 [ms] (mean) Time per request: 1.099 [ms] (mean, across all concurrent requests) Transfer rate: 38338.49 [Kbytes/sec] received The ab bench is not very granular, so I assume that in a single thread all allocators should be close together. I also did a test on linux ubuntu 22 in the same host and the results are similar to windows with msheap or tbb. kind regards btw. I used libraries from JsonDataObjects, DataSet.Serialize TestWebbroker.zip Edited November 1 by Lars Fosdal Modified the topic title Share this post Link to post
RDP1974 40 Posted October 22 look this -> using zlib accelerated deflate (RDPMM64 repo zip.dll) msheap, isapi dll Document Path: /isapi/testisapi.dll Document Length: 8416 bytes Concurrency Level: 100 Time taken for tests: 0.609 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 8617000 bytes HTML transferred: 8416000 bytes Requests per second: 1641.52 [#/sec] (mean) Time per request: 60.919 [ms] (mean) Time per request: 0.609 [ms] (mean, across all concurrent requests) Transfer rate: 13813.49 [Kbytes/sec] received added: uses JsonDataObjects, DataSet.Serialize, RDPWebbroker64; in response method: Response.ContentType:='application/json; charset="UTF-8"'; Response.ZlibDeflate; end; response reduced in real time from 43kb to 8kb (thus saving time from server -> to browser and bandwidth cloud cost) while keeping throughput reqs/s unchanged Share this post Link to post
RDP1974 40 Posted October 22 (edited) btw. I'll provide intel one api accelerated zlib.so library for linux too Edited October 22 by RDP1974 Share this post Link to post
RDP1974 40 Posted October 30 latest oneapi v.2022 intel tbbmalloc with zlib deflate ac: https://github.com/RDP1974/Delphi64RTL Server Software: Microsoft-IIS/10.0 Server Hostname: 192.168.1.110 Server Port: 80 Document Path: /isapi/testisapi.dll Document Length: 8416 bytes Concurrency Level: 100 Time taken for tests: 5.478 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 86170000 bytes HTML transferred: 84160000 bytes Requests per second: 1825.64 [#/sec] (mean) Time per request: 54.775 [ms] (mean) Time per request: 0.548 [ms] (mean, across all concurrent requests) Transfer rate: 15362.84 [Kbytes/sec] received without zlib deflate Document Path: /isapi/testisapi.dll Document Length: 43008 bytes Concurrency Level: 100 Time taken for tests: 5.236 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 431740000 bytes HTML transferred: 430080000 bytes Requests per second: 1909.82 [#/sec] (mean) Time per request: 52.361 [ms] (mean) Time per request: 0.524 [ms] (mean, across all concurrent requests) Transfer rate: 80522.17 [Kbytes/sec] received Share this post Link to post
RDP1974 40 Posted October 30 single request latest oneapi v.2022 (see first page) Concurrency Level: 1 Time taken for tests: 0.004 seconds Complete requests: 1 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 43146 bytes HTML transferred: 43008 bytes Requests per second: 285.06 [#/sec] (mean) Time per request: 3.508 [ms] (mean) Time per request: 3.508 [ms] (mean, across all concurrent requests) Transfer rate: 12011.05 [Kbytes/sec] received Share this post Link to post
RDP1974 40 Posted October 30 please tell me if these test are disturbing or inapropriate if so will delete them Share this post Link to post
RDP1974 40 Posted October 30 (edited) with keep-alive isapi app Concurrency Level: 100 Time taken for tests: 4.763 seconds Complete requests: 10000 Failed requests: 0 Keep-Alive requests: 10000 Total transferred: 431790000 bytes HTML transferred: 430080000 bytes Requests per second: 2099.45 [#/sec] (mean) Time per request: 47.631 [ms] (mean) Time per request: 0.476 [ms] (mean, across all concurrent requests) Transfer rate: 88527.55 [Kbytes/sec] received in project source: Application.MaxConnections:=1000; Application.CacheConnections:=True; Edited October 30 by RDP1974 Share this post Link to post
RDP1974 40 Posted October 30 (edited) lowering the size of the output to 2.5kB (json blob) instead of 46kB, isapi has this throughput (cpu near old 9th 14nm i9900-kf) Concurrency Level: 100 Time taken for tests: 0.398 seconds Complete requests: 10000 Failed requests: 0 Keep-Alive requests: 10000 Total transferred: 27800000 bytes HTML transferred: 26100000 bytes Requests per second: 25106.45 [#/sec] (mean) Time per request: 3.983 [ms] (mean) Time per request: 0.040 [ms] (mean, across all concurrent requests) Transfer rate: 68160.09 [Kbytes/sec] received Edited October 31 by RDP1974 Share this post Link to post
Lars Fosdal 1791 Posted October 31 @RDP1974 - Please change the title of the post to reflect the content - "new test" does not inform those that read the list of topics 1 Share this post Link to post
RDP1974 40 Posted October 31 46 minutes ago, Lars Fosdal said: @RDP1974 - Please change the title of the post to reflect the content - "new test" does not inform those that read the list of topics how to? Share this post Link to post
Lars Fosdal 1791 Posted October 31 @RDP1974 Something like "New mem manager test using indy http, json, memtables, etc" Share this post Link to post
RDP1974 40 Posted October 31 3 hours ago, Lars Fosdal said: @RDP1974 Something like "New mem manager test using indy http, json, memtables, etc" I don't find where to rename the topic 😕 Share this post Link to post
Lars Fosdal 1791 Posted November 1 12 hours ago, RDP1974 said: I don't find where to rename the topic 😕 Normally, it would be by editing the first post. I modified the topic for you. Share this post Link to post
RDP1974 40 Posted November 12 (edited) I feel dumb, want edit first post, can't find how to want erase one post, seems impossible! 😕 Edited November 12 by RDP1974 Share this post Link to post
Remy Lebeau 1392 Posted November 13 5 hours ago, RDP1974 said: I feel dumb, want edit first post, can't find how to want erase one post, seems impossible! 😕 You can't edit a post after some time has passed. And you can't delete a post, but you can flag a post and ask a moderator to delete it for you. Share this post Link to post
Lars Fosdal 1791 Posted 23 hours ago @RDP1974 I deleted the edited empty post. Was that the one you wanted to remove? Share this post Link to post