From c07d0c2d2f6f7b0eb6e92cc6204bf05037957e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Mon, 1 Sep 2014 15:43:52 +0200 Subject: Imported Upstream version 1.6.3 --- doc/Performance.html | 242 +++++++++++++++++++++++++++++---------------------- 1 file changed, 139 insertions(+), 103 deletions(-) (limited to 'doc/Performance.html') diff --git a/doc/Performance.html b/doc/Performance.html index b69f5ae..340cec0 100644 --- a/doc/Performance.html +++ b/doc/Performance.html @@ -1,106 +1,142 @@ - - - - - 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.
-
-
- + + + + + 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.
+
+ You can examine individual variables using
+
+     echo %VARIABLE_NAME%
+
+ or see all of them using
+
+    set
+
+
+ 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.
+
+ You can examine individual variables using
+
+     echo $VARIABLE_NAME
+
+ or see all of them using
+
+    set
+
+
+
+ -- cgit v1.2.3