Jump to content

RDP1974

Members
  • Content Count

    200
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by RDP1974

  1. RDP1974

    borderless with aero shadow

    thank you, but the problem is the 1px frame of the color of theme title I have read a C++ example that I will try in Delphi, needs a return parameter from paint API where VCL use a procedure without return 😕
  2. hello, I did a good benchmark to test the Delphi Linux compiler. Resuming: - server I9 8core with Debian 10 and MySQL8 - server I9 8core with ClearLinux and Apache - server I9 8core with Windows 2016 and IIS10 - I7 client with apachebench The webbroker app from Windows or ClearLinux connect using pooled firedac connections to the Debian MySQL server. I don't want to bench different RDPMS, but only the layer IIS-ISAPI_webbroker and Apache-mod_webbroker. Multiple queries are done against a set returning thousand of lines x ten columns; then the dataset is serialized to REST string using DMVC serializers. The results are, using apachebench ab -n 1000 -c 10 -k -r Default Delphi 64bit IIS 10: 143 reqs/sec Default Delphi 64bit Linux Apache: 554 reqs/sec Delphi 64bit IIS 10 with RDP Intel TBB and Intel IPP libs: 567 reqs/sec (In my site you can download those libs) With a small text output instead of DB both Windows and Linux sustains 10000 reqs/sec So the Linux compiler is great performing and it's very reliable. Under apache I had errors raising the number of concurrent users, this need a manual tuning in apache config files (IIS is autotuning). Congratulations Emba! ------- WINDOWS IIS ISAPI Default Server Software: Microsoft-IIS/10.0 Server Hostname: / Server Port: 80 Document Path: / Document Length: 162716 bytes Concurrency Level: 100 Time taken for tests: 6.974 seconds Complete requests: 1000 Failed requests: 0 Keep-Alive requests: 1000 Total transferred: 162952000 bytes HTML transferred: 162716000 bytes Requests per second: 143.38 [#/sec] (mean) Time per request: 697.430 [ms] (mean) Time per request: 6.974 [ms] (mean, across all concurrent requests) Transfer rate: 22817.02 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.5 0 12 Processing: 47 657 330.7 511 2396 Waiting: 8 655 331.0 508 2396 Total: 47 657 330.7 511 2396 Percentage of the requests served within a certain time (ms) 50% 511 66% 578 75% 825 80% 969 90% 1203 95% 1291 98% 1500 99% 1732 100% 2396 (longest request) ------- WINDOWS IIS ISAPI with Intel TBB IPP Server Software: Microsoft-IIS/10.0 Server Hostname: / Server Port: 80 Document Path: / Document Length: 162716 bytes Concurrency Level: 100 Time taken for tests: 1.762 seconds Complete requests: 1000 Failed requests: 0 Keep-Alive requests: 1000 Total transferred: 162952000 bytes HTML transferred: 162716000 bytes Requests per second: 567.56 [#/sec] (mean) Time per request: 176.192 [ms] (mean) Time per request: 1.762 [ms] (mean, across all concurrent requests) Transfer rate: 90317.94 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.8 0 8 Processing: 23 159 64.5 148 387 Waiting: 8 157 64.7 145 383 Total: 23 159 64.3 148 387 Percentage of the requests served within a certain time (ms) 50% 148 66% 153 75% 160 80% 160 90% 266 95% 312 98% 355 99% 363 100% 387 (longest request) ------ APACHE MOD CLEARLINUX Server Software: Apache/2.4.41 Server Hostname: / Server Port: 80 Document Path: / Document Length: 162778 bytes Concurrency Level: 10 Time taken for tests: 1.804 seconds Complete requests: 1000 Failed requests: 0 Keep-Alive requests: 996 Total transferred: 162992068 bytes HTML transferred: 162778000 bytes Requests per second: 554.27 [#/sec] (mean) Time per request: 18.042 [ms] (mean) Time per request: 1.804 [ms] (mean, across all concurrent requests) Transfer rate: 88224.32 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 2 Processing: 11 18 3.0 17 35 Waiting: 9 16 2.9 16 33 Total: 11 18 3.0 17 35 Percentage of the requests served within a certain time (ms) 50% 17 66% 19 75% 20 80% 20 90% 22 95% 24 98% 26 99% 27 100% 35 (longest request)
  3. When you have DoS/DDoS protection in apache, for example with the usage of the qos_module, you will see that there will be a lot of failed requests in the output of the command. This happens, because the protection is indeed working and as mentioned, the ab tool basically floods your server with requests, so a lot of requests with the same IP will automatically be blocked by the apache module. Indeed I see that the performance of Delphi apache module or Indy web application, with Firedac and data middleware manipulation, under Linux is brilliant. I wait for the compiler optimization to redo a benchmark.
  4. in counterpart for scimark benchmark LLVM compiler needs a complete optimization overhaul https://quality.embarcadero.com/browse/RSP-28006
  5. ab failed requests over apache seems related to the use of it inside a virtual machine, on real hardware the problem doesn't exist
  6. btw. did also a benchmark of Indy based custom Httpd (Soap, Webbroker) and Linux version is 3x more performant (ClearLinux) than Windows patched with Intel Performance Libraries.
  7. https://quality.embarcadero.com/browse/RSP-27918 open
  8. later I'll publish a blog full of tips how to create highly scalable Indy, WebBroker, Soap, Firedac, Windows, Linux servers. A lot of utilities with Webbroker CRUD/REST helpers.
  9. https://news.netcraft.com/archives/category/web-server-survey/ actually nginx is the first, well a webbroker nginx module output is welcome
  10. ab -n 1000 -c 10 -k -r IIS Isapi + Intel TBB IPP = 496 r/s ClearlLinux Apache = 552 r/s But if I raise concurrent users, IIS 0 troubles, Apache start to produce some failed requests then stop with a not enough space. (Need to be tuned) I have not tested zlib, Windows users can use the Intel version, Linux users can use the Cloudflare fork. OpenSSL easNI should be similar to Windows Crypto API, but again, I don't want test different OS, but only delphi code. Lets' go with FastCGI support in webbroker!
  11. ok, I was unable to tune apache for massive load testing, also changing the settings in conf files. Seems that a limit of 150 concurrent users is set somewhere (or a syn flood protection probably). Anyway the performance until limit reach is great. We need that Embarcadero should add FAST-CGI to webbroker, so to bind Nginx, Lighttpd and other modern httpd non-blocking-IO (and largely scalable). I ask this to quality central. Let'see. Kind regards.
  12. Wait, I did a mistake on apachebench. Tomorrow will correct the results.
  13. hello, I'm used to deploy custom Intel TBB memory manager and IPP with Delphi 64bit server apps, with highly satisfaction (see https://github.com/RDP1974/Sea-Delphi-RTL-IIS-Filter results). I have found FastMM4 to be slow and give me many fatal errors under multithreaded stress test (especially the last AVX-512 fork) Many people asked me for a 32bit version of Intel TBB malloc, and many other asked me to do embedded code instead of external DLL to distribute. The point are: - impossible to do static objects of Intel libs without rely on MSVCRT redistribution, further Delphi linker cannot manage the objs (see below) - have tried 32bit TBB DLL, but don't works, giving fatal errors on runtime - have tried CLANG compiled of other two good allocators, doing static objects, but Delphi32 can't link them due to architecture limits ($ThreadLocalStorage functions not managed) The allocators I have tried after reviewing dozens are: - https://github.com/mjansson/rpmalloc - https://github.com/microsoft/mimalloc Now the nasty :) question: Does somebody likes to join me to do a Delphi pascal native version of rpmalloc (seems the easier and cleaner IMHO)? Look, I have really few spare time, but I think we can do it. Any opinion? Regards. (sorry my not good english) Roberto Della Pasqua www.dellapasqua.com
  14. Hi, I’m using FPC with Arm Linux, is very nice, but: - the community release updates so slowly, seems stopped - the RTL and the whole classes quality source code is a lot better and polished in Delphi - RTTI at runtime? - I did a test and Delphi 64 was double faster than FPC in low level loops, sets, arrays and collections - high quality database layer in Delphi IMHO
  15. Really we need a new model for the MM, FastMM4 is bloat, should be cool to have a lock-free allocator using threadvar and/or TLS API also with a small thread pool preallocated, so to compete with other high performance languages. As far I have tested to make Delphi perfect again: - TLS lock-free allocator - SIMD FillChar, Move, Pos I ask Mr.Allen of Grizly :-P Regards.
  16. btw: Iceland should be a nice place where to put tier4-datacenters 😄
  17. sorry, indeed bad humour (and this last is hard to replicate in a globalized citadel, emoticons too hardly can be categorized inside a international ISO or Madrid protocol; we need a truly "clever" semantic translator? or maybe more realistic choice, I should study english better way, finally will stop my stupid topics). Big esteem to you and Emba of course.
  18. So is better if emba buy remobjects and leverage the big quality of their llvm Island for the whole new platforms
  19. I have a silly idea about LLVM codegen, we should "translate" CLANG into PLANG at high level, instead to try to do a LLVM low level compiler. C++17 of CLANG can do anything we need in modern pascal, generics too. And should be a matter of syntax parsing instead to do low level stuff. Agree?
  20. I did a benchmark with aes software ciphering class, and the win64 is near double faster than linux/osx llvm problem appears that llvm optimizations are not used at all
  21. Hello, I’m a certified delphi developer, I have released a library set to optimize and speedup Delphi 64bit applications. It’s useful for any kind of applications; especially servers or isapi webbroker applications, on a modern quadcore cpu, will achieve 3x-4x speed and better, strong reliability. If you wish check www.dellapasqua.com/bettermemory Feel free to contact me for questions or any kind of partnership/collaboration. Thank you and best regards. Roberto Della Pasqua www.dellapasqua.com btw: example test for isapi webbroker: - plain json 400 reqs/sec (not compressed) - zlib deflate 150 reqs/sec (compressed) - this library 700 reqs/sec (compressed: near double reqs/sec with 1/10 bandwidth)
  22. hello, indeed I have now an agreement with a nice company for the libraries distribution. Anyway I have obtained to be free to publish the libs on my side, so if you wish test them, if you will use it please contact me for a small fee. btw. I have updated the dlls with the latest zlib and 9th gen Intel simd. https://github.com/RDP1974 www.dellapasqua.com btw. will be nice to have results from delphi mars, delphi mvc, daraja, and other mvc/rest btw. those wrappers are built around the Intel TBB and Intel IPP libraries, for maximum reliability and quality industry proven
  23. RDP1974

    cocos2d multiplatform

    hello, I like enhance this library https://github.com/HandymanPlus/delphi-cocos2dx and make it FMX compatible multiplatform, but using low level OpenGLES (Android, Ios, Osx) I have few spare time, does somebody wants join me in this work? Coco2d is by far the best engine for cellphones realtime games, making it fully compatible delphi android and ios... is a must to do! Let me know, thanks
  24. RDP1974

    cocos2d multiplatform

    I see, thanks for the info
  25. RDP1974

    cocos2d multiplatform

    Metal is Apple only, Vulcan is not well supported. further both are low level api, cocos is high level game engine, the most used. Also GLes (OpenGL subset) works perfectly from Android, iOS to Linux ... will be cool to have a Delphi counterpart of this engine I’ll try to do in the spare time
×