mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2026-10-24 00:49:00 +03:00
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>
CI support stuff
Docker image
GitLab CI jobs run in a Docker image, defined here. To update that image (perhaps to install some more packages):
- Edit
.gitlab-ci/*.Dockerfilewith the changes you want - Run
.gitlab-ci/run-docker.sh build --base=debian-stable --base-version=1to build the new image (bump the version from the latest listed for thatbaseon https://gitlab.gnome.org/GNOME/glib/container_registry). If rebuilding thecoverity.Dockerfileimage, you’ll need to have access to Coverity Scan and will need to specify your project name and access token as the environment variablesCOVERITY_SCAN_PROJECT_NAMEandCOVERITY_SCAN_TOKEN. - Run
.gitlab-ci/run-docker.sh push --base=debian-stable --base-version=1to upload the new image to the GNOME GitLab Docker registry- If this is the first time you're doing this, you'll need to log into the registry
- If you use 2-factor authentication on your GNOME GitLab account, you'll
need to create a personal access token and use that rather than
your normal password — the token should have
read_registryandwrite_registrypermissions
- Edit
.gitlab-ci.yml(in the root of this repository) to use your new image