1
0
mirror of https://gitlab.gnome.org/GNOME/glib.git synced 2026-10-24 00:49:00 +03:00
Files
glib/subprojects/libffi.wrap
Christian Hergert 30dfead61b gobject/gclosure: cache libffi plans for closures
If we are using libffi to trampoline then there is opportunity to cache
the ffi_call_plan introduced in newer libffi releases. A rather contrived
test introduced in the previous commit includes a basic performance test
that can compare between versions.

For my system, the average call time dropped from 200ns/call to 145ns/call
for cached GClosure. Since the previous version did no caching, the
uncached GClosure use was also just slightly slower around 205ns/call. For
the cached form (since it can reuse a global plan cache via GMutex) it
drops to 180ns/call. So that is 27.5% savings and a 10% savings in runtime
duration.

Closes: #4002
Co-authored-by: Philip Withnall <pwithnall@gnome.org>
2026-10-14 12:55:41 +02:00

15 lines
714 B
Plaintext

[wrap-file]
directory = libffi-3.7.1
source_url = https://github.com/libffi/libffi/releases/download/v3.7.1/libffi-3.7.1.tar.gz
source_filename = libffi-3.7.1.tar.gz
source_hash = d5e9a6638ddbd2513ddb54518eb67e4bbe6fa707bcc01c10f6212f0a088d819d
source_fallback_url = https://wrapdb.mesonbuild.com/v2/libffi_3.7.1-1/get_source/libffi-3.7.1.tar.gz
patch_filename = libffi_3.7.1-1_patch.zip
patch_url = https://wrapdb.mesonbuild.com/v2/libffi_3.7.1-1/get_patch
patch_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/libffi_3.7.1-1/libffi_3.7.1-1_patch.zip
patch_hash = 7c5397bbfd026a5b9aac87e8aea58a6098329b4ee13243e3a9c8f49978418fac
wrapdb_version = 3.7.1-1
[provide]
dependency_names = libffi