From 22f703cab05b7cd368f4de9e03991b7664dc5022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 13:56:46 +0200 Subject: Initial import of argyll version 1.5.1-8 --- doc/Performance.html | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 doc/Performance.html (limited to 'doc/Performance.html') diff --git a/doc/Performance.html b/doc/Performance.html new file mode 100644 index 0000000..b69f5ae --- /dev/null +++ b/doc/Performance.html @@ -0,0 +1,106 @@ + + + + + + + Argyll Performance Tuning + + +

+Performance Tuning

+
+Some operations in Argyll can be particularly slow, so it is worth +examining ways of improving performance, or trading memory consumption +for performance.
+

Creating Device Links and Profiles
+

+In creating device links or the B2A tables of profiles, the execution +time is often dominated by the inversion of forward +color lookup values. An in-memory cache is employed to speed up this +operation, by keeping computed values in case they can be used more +than once. The amount of memory used for caching these values is +pre-set within the inversion code, and by default is set to use half of +the available RAM on the system, with a minimum of 50 Mbytes.
+
+The reverse cache size can be changed by setting an environment +variable +ARGYLL_REV_CACHE_MULT to a +number greater or less than than 1.0 This will multiply the size of the +cache by that number (i.e. 1.5 would increase the cache size by 50%, +0.5 would halve it).
+
+If you find that colprof +or  collink +are working very slowly, but that your CPU's are nearly idle, then this +is a sign of disk swapping, and that too much memory is being +requested.  This can be because other applications are also using +memory, or Argyll's default setting tries to use more memory than is +actually available. You can try shutting down other applications when +this happens, or you can lower +the amount of memory Argyll uses by setting ARGYLL_REV_CACHE_MULT to a value +less than 1.0 (ie. try 0.5).
+
+If you have a lot of memory available, you can try increasing the +cache size to use more of the available RAM (particularly if you get a +"Warning - Reverse Cell Cache exhausted, +processing in chunks" message during processing), but if you set it to +a value too near 2.0 you risk disk swapping, which can slow progress to +a crawl.
+
+If you have a lot of memory available, then a second adjustment that +can make a great difference to the time taken +in creating B2A tables is the resolution of the inverse lookup +acceleration grid. The finer the grid, the less searching is needed to +locate the input colorspace values that +correspond to a target output color value, but the greater the memory +used in this +structure, and the greater the setup time needed to initialize the +acceleration grid. The ARGYLL_REV_ACC_GRID_RES_MULT +environment variable can alter the default resolution by a scale +factor. A value of 0.5 for instance, would halve the resolution +(typically meaning 1/8 th. the total number of grid entries and +memory), while a value of 2.0 would double it, typically resulting in 8 +times the memory usage. Increasing the resolution too much will reduce +the available memory for the reverse cache, and greatly increase setup +time.
+
+

Setting an environment variable:

+
+To set an environment variable an MSWindows DOS shell, either use set, +e.g.;
+
+    set ARGYLL_REV_CACHE_MULT=1.5
+
+which will set the value for that session, or set it in
+
+Control Panel->System->Advanced->Environment Variables..
+
+in either user or system variables.
+
+For OS X or Linux, the exact procedure will depend on the shell you are +running, but
+is usually something like:
+
+    export ARGYLL_REV_CACHE_MULT=1.5
+or
+    set ARGYLL_REV_CACHE_MULT=1.5
+or
+    ARGYLL_REV_CACHE_MULT=1.5
+
+and may need separately exporting, something like:
+
+    export ARGYLL_REV_CACHE_MULT
+
+Generally it should be configured in the shell start-up script,  +if you +want the setting to be used
+for every session.
+
+
+ + -- cgit v1.2.3