Oqtane 5 feels much snappier than Oqtane 4 - thanks to many improvements in .net 8.
Precompiled WASM in GZip and Broetli Compression
Based on our review, I believe a very important enhancement is the pre-compiled WASM files, which are already prepared as GZip and Broetli files stored in the wwwroot/_framework folder.
Running winmerge to compare the installers we see a huge difference in these structures:
Basically our findings are:
- In Oqtane 4.6 the folder contains a lot of .dll files
- In Oqtane 5 the .dll are gone, replaced by 3 files each
- a .wasm file which appears to be pre-compiled WASM
- a .wasm.br file which appears to be a broetli-compressed WASM
- a .wasm.gz file which is probably the same for older browsers which only support GZip
wwwroot/_framework Files Comparison
- DLL Files (in Oqtane 4): 222 files totalling 26 MB
- WASM files: 212 files totalling 27.8 MB
- Broetli files: 212 files totalling 8.66 MB (and some which are .br but not wasm)
- GZip files: 212 files totalling 11.4 MB (and some which are .gz but not wasm)
Files and Broetli vs. GZip Compression
Broetli - which means a small bread in Swiss German - is a compression algorithm developed a few years ago and supported in around 97.4% of all browsers. Let's compare the two in Oqtane 5.0
- DLL Files (in Oqtane 4): 26 MB
- WASM files: 27.8 MB
- Broetli files: 8.66 MB
- GZip files: 11.4 MB
So Broetli is a clear boost with an average of 20% smaller files, and AFAIK the decompression in the browser is also faster upon arrival.
My understanding is that GZip is basically dead anyhow, but I presume that .net 8 still creates these files to support ancient IE clients which don't support Broetli yet đŸ˜‰.
.wasm files as a backup?
It's unclear why there are also .wasm files as they are clearly just lying aroun to be backed up. My guess is that it's a setup to support future compressions and therefor still have the "original" lying around just-in case.
It's interesting to note that they are almost the identical size as the original DLLs.
Benchmarks
As of now we don't have any real benchmarks, since it's really hard to measure performance in this setup where the page loads, and kind of re-loads in the browser.
What we can clearly see is that the UX feels much, much snappier. It feels much more like a SPA than Oqtane 4, as the pages are rendered imminently right after clicking.
Happy Coding!
iJungleboy