I'm in the same boat, I just switched to using it for Kavita, which only does some basic open Image -> Thumbnail to smaller size -> write to disk when importing new comics/books and on linux, memory could swell to 10GB and never get released. Switched to jemalloc and instantly memory stayed well below 1GB.
Generally yes, but the wording of "instantly" begs for the following pedantic remark:
This is controlled by jemalloc settings `dirty_decay_ms`, `muzzy_decay_ms`, and their interaction with `background_thread`.
`dirty_decay_ms` currently defaults to 10 seconds, so it's not that instant.
That is important e.g. for single-threaded programs that start other programs, such as my Python example: If it starts a subprocess before the 10 seconds elapse after `free()`, Python (and jemalloc) do not run, and get no chance to return memory to the OS.
In such cases, either enable `background_thread`, or set the `_decay_` values to `0` to ensure immediate return to the OS upon `free()`. (This costs some performance.)
Outside of the outstanding optimizations .net has made (plus async runtime), what I really enjoyed was the reworked entry section. Stephen reiterated all the concepts from the past Performance Improvement articles to really showcase the layers of optimization techniques and how the can transform.
Factorio has an extremely broad LUA modding API, so a mod was made that allows it to get data about the game and send input actions to control the game.
It also has ability to make screenshots and it does use it from time to time to inspect whats going on.
One thing that really interests me is declining to issue CVEs. I get a lot of AI submitted security issues and they all want CVEs. But some are simple idor to access information around an age rating on selfhosted software for friends and family.
Kavita has a custom epub library that actually streams the epub pages. The reason why it's non-existent is due to epub being a zip, with a manifest of pages and images. Each page is an html document, so it may have images requested from that manifest.
Most applications just use epub.js which needs the whole book loaded at once.
Edit: Also Kavita does support some calibre tags for metadata and def is much more customizable with a powerful filtering system which you can then bind to your dashboard/side nav.
www.kavitareader.com for those that might be interested (or check the wiki to get a bit more about it).
Why not use Kavita then? It uses even less resources, it's mature (nearly 5 years old) and supports manga/comics/ebooks with a rich ecosystem of apps (esp with AI now, lots of users are creating mobile apps to connect).
reply