#1 2023-05-01 13:52:47

milesyyl
Member
Registered: 2023-05-01
Posts: 3

Mormot performs less than libhv under Raspberry Pi

hi ab,Momort2 performs very well on Windows Linux,but ,I tested libhv better than  Mormot under Raspberry Pi,
libhv :https://github.com/ithewei/libhv   tinyhttpd.c    I hope the author can study it 。thinks

Offline

#2 2023-05-01 16:32:06

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 14,182
Website

Re: Mormot performs less than libhv under Raspberry Pi

https://github.com/ithewei/libhv is interesting for sure.
But we try not to depend on any external library - the idea of mORMot is that the core process could be properly done in modern pascal and FPC.
Less fun, and less improvement potential.

BTW are you using ARM or AARCH64? Which distribution?

mORMot was never very optimized for RPi because
1) FPC itself is less efficient than GCC/CLANG on ARM/AARCH64
2) We test and focus on Linux x86_64 for performance - no need of RPi huge performance in most case, because this is not why this platform was designed
3) The RPi CPUs are slow, and lack some mandatory features for anything serious about server process (like HW AES extensions, and fast RAM and storage)
4) Our tests with Ampere CPUs - on Oracle Cloud - were good enough to compete with x86_64 cloud servers with similar pricing
5) We spent limited testing time on AARCH64/ARM.

Perhaps I need to reboot my RPi4 after some months of being shutdown, to be fair. wink

Offline

#3 2023-05-02 04:50:00

milesyyl
Member
Registered: 2023-05-01
Posts: 3

Re: Mormot performs less than libhv under Raspberry Pi

Thank you very much for your reply. Thank you for working hard for Pascal. I tested AARCH64 and would like to say thank you again!!!

Offline

#4 2023-05-02 13:27:34

milesyyl
Member
Registered: 2023-05-01
Posts: 3

Re: Mormot performs less than libhv under Raspberry Pi

Forgot, by the way, tell me to use a stress testing tool https://github.com/codesenberg/bombardier
bombardier.exe -c 1000 -n 100000000 http://127.0.0.1:8888/echo
FPC program, when under window, 1000 concurrent tests are normal, change to 5000 or later
When 5000 concurrent programs run for a period of time, they inexplicably stop working
bombardier.exe -c 5000 -n 100000000 http://127.0.0.1:8888/echo
But The program compiled by Delphi can also run normally ,
the golang standard HTTP server can run normally.

Last edited by milesyyl (2023-05-03 09:29:52)

Offline

Board footer

Powered by FluxBB