Add notes to thread recycling / loadable modules
This commit is contained in:
parent
6e8ec30852
commit
6f0131ff3e
32
whats-new.md
32
whats-new.md
@ -12,15 +12,11 @@ kleisauke and others for their great work on this release.
|
|||||||
[Lunaphore](https://www.lunaphore.ch/) kindly sponsored the development of
|
[Lunaphore](https://www.lunaphore.ch/) kindly sponsored the development of
|
||||||
the new JPEG2000 features, see below.
|
the new JPEG2000 features, see below.
|
||||||
|
|
||||||
# Loadable modules for some image format loaders
|
|
||||||
|
|
||||||
- move openslide, libheif, poppler and magick to loadable modules [kleisauke]
|
|
||||||
|
|
||||||
# Experimental JPEG-XL support
|
# Experimental JPEG-XL support
|
||||||
|
|
||||||
libvips 8.11 includes experimental support for JPEG-XL load and save.
|
libvips 8.11 includes experimental support for JPEG-XL load and save.
|
||||||
|
|
||||||
(JPEG-XL)[https://jpeg.org/jpegxl/] is a promising new iteration of the JPEG
|
[JPEG-XL](https://jpeg.org/jpegxl/) is a promising new iteration of the JPEG
|
||||||
standard that's currently being developed. The Chrome web browser supports
|
standard that's currently being developed. The Chrome web browser supports
|
||||||
it, though behind a flag, and it looks like it might be enabled by default
|
it, though behind a flag, and it looks like it might be enabled by default
|
||||||
this autumn in Chrome 89.
|
this autumn in Chrome 89.
|
||||||
@ -64,8 +60,30 @@ be squeezed out.
|
|||||||
|
|
||||||
# Thread recycling
|
# Thread recycling
|
||||||
|
|
||||||
- new threading model has a single threadpool shared by all
|
The threading system of libvips was revamped, the new implementation uses
|
||||||
pipelines [kleisauke]
|
[GLib's thread pool](https://developer.gnome.org/glib/stable/glib-Thread-Pools.html)
|
||||||
|
semantics, which is a single thread pool shared across all pipelines. This
|
||||||
|
implementation allows the reuse of already started threads.
|
||||||
|
|
||||||
|
This was originally intended for WebAssembly but it turned out to be useful
|
||||||
|
for native environments as well. Relative speed-ups are varying between ~4%
|
||||||
|
and ~15% compared to the previous implementation. Especially for short-lived
|
||||||
|
pipelines and long-running processes, a performance improvement can be observed.
|
||||||
|
|
||||||
|
# Loadable modules for some dependencies
|
||||||
|
|
||||||
|
libvips now supports building OpenSlide, libheif, Poppler and
|
||||||
|
{Image,Graphics}Magick as a dynamically loadable module. This makes it easier
|
||||||
|
for distributions to provide separate (optional) packages for these dependencies,
|
||||||
|
making the core package much slimmer.
|
||||||
|
|
||||||
|
[GModule](https://developer.gnome.org/glib/stable/glib-Dynamic-Loading-of-Modules.html)
|
||||||
|
is used to accomplish this in a portable way. We already had a simple plugin system
|
||||||
|
based on this, but the build part was not yet implemented.
|
||||||
|
|
||||||
|
These loadable modules are built automatically when GModule is supported, which
|
||||||
|
should be supported on at least Linux, Windows and macOS. It can be disabled
|
||||||
|
by passing `--disable-modules` while configuring libvips.
|
||||||
|
|
||||||
# Full-colour text rendering
|
# Full-colour text rendering
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user