Comments (6)
This support is experimental and not available by default.
Any input is welcome, but I don't have time for this now.
from mormot.
If you look into the feedback and later benchmarks in the pull request on CF it is not sure that it is actually faster...
from mormot.
I have recompiled the CloudFlare zlib libraries and placed them here. Feel free to update the static files included with your repository.
You can test the performance benefit yourself with my benchmark. The feedback and benchmarks you are referring to were from me. However, the conclusion is that this patch does not improve gz compression, though it aids .z compression and both .gz and .z decompression. It accelerates .gz decompression by about ~16% (improving decompression but not CRC32 redundancy check), and it accelerates .z compression ~25% (since both the Adler32 redundancy check and decompression is improved).
from mormot.
I have updated .o files for Linux, MacOS and Windows. I used 3 different computers to compare performance, so one can not compare between operating systems.
On Linux, FPC TGZFileStream required 1770ms, SynZip required 1120ms, SynZip+CloudFlare2020 required 830ms
On MacOS, TGZFileStream required 1244ms, SynZip required 610ms, SynZip+CloudFlare2020 required 500ms
On Windows, TGZFileStream required 2724ms, SynZip+CloudFlare2018 required 1310ms, SynZip+CloudFlare2020 required 1200ms. So the new code is about 10% faster for decompression. It is a small but reliable impact.
from mormot.
I am currently integrating libdeflate to mORMot 2.
This is much faster than the CloudFlare zlib library.
from mormot.
@synopse nice work! I agree that libdeflate is a much faster algorithm (albeit it may have higher memory demands). I show the relative performance here. I have tried your code from mORMot 2, and it is does provide easy access to this blazing fast library. Thanks for implementing this.
from mormot.
Related Issues (20)
- Problem in SynCrtSock.TWinHTTP.InternalSendRequest if the server asks for a client certificate HOT 2
- I have modified/corrected some code but I can't share my work... HOT 3
- Correct criticalsection managment and move some declaration to handle HttpAPI in Windows. HOT 2
- Memory Leak on RemoteDB HOT 2
- Documentation example mistake ? 4.3.1. TList-like properties HOT 10
- Endless recursive calls in SynCommons::FileSize HOT 3
- Typo in SAD 1.18 HOT 3
- why cannot run the same SQLite on Linux at the same time HOT 1
- Bufferoverread for THttpServerRequest.FullUrl HOT 4
- ARM9 without FPU(VFP) does not support HOT 1
- Forward slash instead of backslash? HOT 3
- Fatal Error (Exception External:?) after second exception in Interfaced based Services HOT 1
- Declaration of "ConvertToEmfPlus" is not 64 bit safe HOT 1
- THttpApiWebSocketConnection.PrivateData Property value cannot be set. HOT 2
- THttpServer.OnHttpRequest - Ctxt.RemoteIP is empty HOT 2
- HttpGet: outStatus parameter is invalid
- THttpServer : Executing the HEAD request will read the entire file HOT 4
- TWinHTTP Thread safe issue in filling OSVersionInfo HOT 1
- Postgresql boolean (t/f) JSON parsing HOT 1
- Cannot compile under Delphi 12 due to the compiler errors HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mormot.