mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-02-06 00:00:28 +01:00
Hook into the scanner to write out binary version of the tokenized
objects -- note we bind executable names (i.e. check to see if is an
operator and substitute the name with an operator -- this breaks
overloading of operators by scripts).
By converting scripts to a binary form, they are more compact and
execute faster:
firefox-world-map.trace 526850146 bytes
bound.trace 275187755 bytes
[ # ] backend test min(s) median(s) stddev. count
[ 0] null bound 34.481 34.741 0.68% 3/3
[ 1] null firefox-world-map 89.635 89.716 0.19% 3/3
[ 0] drm bound 79.304 79.350 0.61% 3/3
[ 1] drm firefox-world-map 135.380 135.475 0.58% 3/3
[ 0] image bound 95.819 96.258 2.85% 3/3
[ 1] image firefox-world-map 156.889 156.935 1.36% 3/3
[ 0] xlib bound 539.130 550.220 1.40% 3/3
[ 1] xlib firefox-world-map 596.244 613.487 1.74% 3/3
This trace has a lot of complex paths and the use of binary floating point
reduces the file size by about 50%, with a commensurate reduction in scan
time and significant reduction in operator lookup overhead. Note that this
test is still IO/CPU bound on my i915 with its pitifully slow flash...
|
||
|---|---|---|
| .. | ||
| cairo-script | ||
| cairo-trace | ||
| .gitignore | ||
| backtrace-symbols.c | ||
| cairo-api-update | ||
| cairo-view | ||
| COPYING | ||
| font-view.c | ||
| Makefile.am | ||
| malloc-stats.c | ||
| README | ||
| waterfall | ||
| xr2cairo | ||
Cairo Utilities =============== There are a varieties of utilities we use with cairo. backtrace-symbols ----------------- This is a small shared library designed to be preloaded by the linker and its purpose is to make the backtrace_symbols() function of glibc produce more useful source reference information. Build by: make backtrace-symbols.so and use by: LD_PRELOAD=$PWD/backtrace-symbols.so app-to-run This code should be contributed back to glibc at some point. malloc-stats ------------ This is a small shared library designed to be preloaded by the linker and its purpose is to make the malloc_stats() function of glibc produce more useful information. Build by: make malloc-stats.so and use by: LD_PRELOAD=$PWD/malloc-stats.so app-to-run This works best when backtrace-symbols is in use. That is: LD_PRELOAD="$PWD/backtrace-symbols.so $PWD/malloc-stats.so" app-to-run cairo-trace ----------- This tool can be used to trace all the cairo function calls made by an applications. This is useful for either extracting a test case triggering a bug from an application, or simply to get a general idea of how an application is using cairo. cairo-api-update and xr2cairo ----------------------------- These two scripts were used to convert source code written for pre-1.0 cairo to newer API. See $(top_srcdir)/PORTING_GUIDE for more information. These files are obsolete now and may be removed in a future version. cairo-view and waterfall ------------------------ These are two pycairo scripts useful for testing the toy font backend.