Jump to content

RDP1974

Members
  • Content Count

    247
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by RDP1974

  1. 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
  2. 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
  3. hi, I did a quick benchmark test for single threaded application (using attached poker game, of course it's not exhaustive with a small subset of things) the win heap manager seems enhanced, now direct heap is faster than default MM or Intel TBB (using host I-9900kf win11 24h2 delphi 12.2.1 fpc 3.2.2 release mode) single thread x64 console mode-> D12 default: Total Time: 1,031 Seconds Hands Per Second 2520814,74296799 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 D12 intel tbb (rdpmm64): Total Time: 1,281 Seconds Hands Per Second 2028852,45901639 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 D12 msheap: Total Time: 0,984 Seconds Hands Per Second 2641219,51219512 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 latest FPC lazarus: Total Time: 2,25 Seconds Hands Per Second 1155093,33333333 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 Many RTL are using directly the heap of windows, as Rust, Clang and others, it resists fragmentation, so I suppose it is okay to use it directly. Also this act very well in multithreading as webbroker apps. look here if you wish https://github.com/RDP1974/ Sorry to bore you with these things, just out of curiosity to squeeze the possible performance btw. do you know a more complete real-world test scenario than this? wldd49.zip
  4. btw. I'll provide intel one api accelerated zlib.so library for linux too
  5. 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
  6. RDP1974

    win11 24h2 msheap fastest

    https://learn.microsoft.com/en-us/windows/win32/memory/low-fragmentation-heap https://illmatics.com/Understanding_the_LFH.pdf https://www.softwareverify.com/blog/memory-fragmentation-your-worst-nightmare/ https://users.rust-lang.org/t/why-dont-windows-targets-use-malloc-instead-of-heapalloc/57936 I don't know if we need an intermediate allocator or if we can use the Win API heap directly.
  7. RDP1974

    win11 24h2 msheap fastest

    this in win2022 server 21h2 hyper-v guest C:\Exes>cmd3_def Total Time: 1,062 Seconds Hands Per Second 2447231,63841808 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 C:\Exes>cmd3_fm5 (fastmm5) Total Time: 1 Seconds Hands Per Second 2598960 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 C:\Exes>cmd3_rdp64 Total Time: 1,344 Seconds Hands Per Second 1933750 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 C:\Exes>cmd3_laz Total Time: 2,266 Seconds Hands Per Second 1146937,33451015 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960 C:\Exes>cmd3_msheap Total Time: 0,984 Seconds Hands Per Second 2641219,51219512 Hand Evaluation Expected Actual Royal Flushes: 4 4 Straight Flushes: 36 36 Four of a Kinds: 624 624 Full Houses: 3744 3744 Flushes: 5108 5108 Straights: 10200 10200 Three of a Kinds: 54912 54912 Two Pairs: 123552 123552 One Pairs: 1098240 1098240 Other: 1302540 1302540 Total Hands: 2598960 2598960
  8. RDP1974

    Delphi 12.2 Patch 1

    I have not removed parnassus plugins now on this win11 24h2 the setup won't complete, both web install or iso
  9. RDP1974

    which JSON library

    hi, can I ask your opinion about this JSON library to adopt? As much as there are good repositories for Delphi, in the last period I feel comfortable with this JsonTools (I handled all the blobs correctly from many devices where other libraries gave me errors in parsing) https://www.getlazarus.org/json/ https://www.getlazarus.org/json/tests/ (all test passed) btw. I am a loyal Delphi customer, I don't want to advertise Lazarus 🙂
  10. RDP1974

    which JSON library

    eg. a typical TCP chat client server, with a common protocol as discord or whatsapp or old msn.
  11. RDP1974

    which JSON library

    Hi, is it possible to use a retrieval path method for example on a list with multiple arrays inside? Many libraries offer a subset of https://goessner.net/articles/JsonPath/ for simple retrievals.
  12. RDP1974

    which JSON library

    I also did this small test (parsing, path retrieve) over Grijjy.Bson, NesLib.Json, System.Json of course this test is not exhaustive, anyway Ahausladen is the fastest (D12.2 x64 Win11 24h2)
  13. RDP1974

    which JSON library

    also there are many excellent libs (https://github.com/Fr0sT-Brutal/awesome-pascal) https://github.com/paolo-rossi/delphi-neon https://github.com/ahausladen/JsonDataObjects https://github.com/grijjy/GrijjyFoundation for now I have tested Hausladen JsonDataObjects : that's 3x faster than JsonTools and equally easy Delphi community is unbeatable!
  14. RDP1974

    Up-to-date 32 bit libmysql.dll?

    e.c. these dll are only for 64bit latest mysql (copy them from or use the bin folder of the mysql in FDPhysMySQLDriverLink)
  15. RDP1974

    Up-to-date 32 bit libmysql.dll?

    from ver 8 the dll are inside the c:\program files\mysql\bin folder of the server latest version needs also a pair of dll crypto ssleay or something for the new ssl protocol auth
  16. hi, I have updated the libraries and units of the RTL patches from Intel IPP oneTBB performance suite these are well suited for web server application scalability on windows architecture https://github.com/RDP1974 (test on concurrent http calls show 13x speedup) there are enhancements on zlib 1.3.1 options, and some random av seems solved correctly I have done testing, but please if you found troubles please notify me at roberto.dellapasqua dot live.com kind regards Roberto
  17. thanks for the hint I correct
  18. look, I did only pascal wrappers, here's how to obtain the dll's: install visual studio c++ (I use the 2019 version) install intel ipp https://www.intel.com/content/www/us/en/developer/tools/oneapi/ipp.html install python the allocator is here: https://www.oneapi.io/ https://github.com/oneapi-src/oneTBB/tree/master see cmake dir, run it and build a visual studio project, locate tbbmalloc and compile it (you should select MD multithreading static library) the simd rtl replacement: install qt5 python library, if I remember "pip install pyqt5" python C:\Program Files (x86)\Intel\oneAPI\ipp\latest\opt\ipp\tools\custom_library_tool_python\main.py this tool will build a vc script to create the custom dll locate ippsZero_8u, ippsCopy_8u, ippsMove_8u, ippsSet_8u, ippsFind_8u, ippsCompare_8u, ippsUppercaseLatin_8u_I, ippsReplaceC_8u from signal processing, and other select (indeed we can extend many functions from this tool, especially for image processing, but I didn't have time to do) run the script to obtain the dll the zlib accelerated with ipp: C:\Program Files (x86)\Intel\oneAPI\ipp\2021.12\share\doc\ipp\components_and_examples_win\components\interfaces here you can see common libraries enhanced, check the folder zlib and open the readme, follow the instructions tell me if you have troubles in build this kind regards
  19. maybe in rdpsimd64 can we rem this line? which cpu do you test? procedure Move2(const Source; var Dest; Count: NativeInt); inline; begin //if Count > 0 then //>>> useless checking? SeaMove(@Source, @Dest, Count); end; I removed the check, works ok, thanks for the hint
  20. do you know if somebody has done a webbroker bridge to ms http2 api (http.sys)? else should be nice build it and add a session mechanism using tdictionary hints?
  21. ok, I will publish a tutorial how to build the dll's
  22. the allocator is open source here: https://github.com/oneapi-src/oneTBB/tree/master the simd rtl and the zlib are done using ipp suite: https://www.intel.com/content/www/us/en/developer/tools/oneapi/ipp.html dll are built on a clean windows 2022 setup
  23. RDP1974

    http client

    hi, can be possible to use thttpclient in async mode and do 4 get concurrently (as chromium does)? are they overlapped? how to discover the sender? or we need to run 1 get at once in sequence?
  24. RDP1974

    fmx at runtime controls

    hi, I want do this with fmx: 1- vertscrollbox 2- tlayout 3- create at runtime trectangle then fill it with a bitmap, dinamically, when needed (as add tiles) I did a small test without success how to do? btw. I like to add event callbacks too, as onclick() btw. the best method to draw things, call update, etc.
  25. RDP1974

    webrtc

    hi, I need to develop webrtc ios android app can someone suggest me which is better among Alcinoe https://github.com/MagicFoundation/Alcinoe or http://www.flashavconverter.com/content/webrtc-delphi-component (this last doesn't patch units and this is preferable to me) about reliability and quality? thanks for any hints
×