nixpkgs-suyu/pkgs/tools/graphics
Andreas Herrmann 79e145a970 gnuplot: Improve startup performance
Before executing the gnuplot executable the environment variable `GDFONTPATH`
is populated with a list of font directories, which is obtained from `fc-list`.
In that process we iterated over each line and called `dirname` on it, which
introduces a performance hit for loading and executing the external executable
`dirname` every time.

The new version avoids the loop.

The author of this patch measured a 42 fold performance improvement:

old version:

    $ time ./gnuplot_old/bin/gnuplot -e ''
    real    0m3.828s
    user    0m0.392s
    sys     0m0.465s

new version:

    $ time ./gnuplot_new2/bin/gnuplot -e ''
    real    0m0.091s
    user    0m0.112s
    sys     0m0.014s

The correctness of the value of `GDFONTPATH` was confirmed with the following
command and comparing its output between versions:

    $ gnuplot -e 'print system("echo $GDFONTPATH")'
2016-01-11 15:37:07 +01:00
..
argyllcms argyllcms: gcc5 compat 2015-09-16 21:58:53 -07:00
asymptote asymptote: Fix source URL 2015-07-05 14:31:46 +03:00
barcode barcode: reimplement using mkDerivation 2015-11-24 14:45:15 +01:00
briss
cfdg cfdg: reimplement using mkDerivation 2015-11-24 14:45:15 +01:00
cuneiform all-packages: Use callPackage where possible 2015-09-14 22:27:19 -06:00
dcraw dcraw: update from 9.22 to 9.26.0 2015-10-25 19:06:58 +01:00
diagrams-builder Simplify standalone diagrams-builder expression. 2015-04-29 21:46:39 -04:00
ditaa
dmtx-utils dmtx-utils: depend on imagemagick (ZHF) 2015-07-28 17:57:11 +02:00
editres
enblend-enfuse Revert "Revert "Merge pull request #9543 from NixOS/staging.post-15.06"" 2015-11-14 12:32:51 -08:00
eplot eplot: init at 2.07 2015-07-15 23:37:33 +02:00
exif
exiftags Turn more licenses into lib.licenses style 2014-11-06 00:48:16 +00:00
fgallery fgallery: init at 1.7 2015-07-15 16:02:37 +02:00
ggobi r-modules: fixing rggobi by adding initial expression for ggobi 2015-03-26 12:20:07 +01:00
gifsicle gifsicle: 1.87 -> 1.88 2015-11-15 11:50:20 +01:00
glmark2 xlibs: replace occurrences by xorg 2015-09-15 12:54:34 +02:00
glxinfo x11: replace its usage by xlibsWrapper directly 2015-09-15 12:08:24 +02:00
gmic gmic: init at 1.6.5.0 2015-07-16 22:02:21 +02:00
gnuplot gnuplot: Improve startup performance 2016-01-11 15:37:07 +01:00
graphviz link graphviz with libc++ instead of nothing on darwin 2015-10-28 16:09:51 -07:00
icoutils
imgur-screenshot imgur-screenshot: init at 1.5.4 2015-11-06 23:48:32 +03:00
imgurbash imgurbash: add package 2015-07-28 12:33:29 +03:00
jbig2enc
jhead jhead: add libjpeg as dependency 2016-01-06 20:38:20 +01:00
kst kst: Qt 5 infrastructure update 2015-12-20 07:56:50 -06:00
leela leela: init at 12.fe7a35a 2015-10-16 21:59:49 +11:00
logstalgia logstalgia: 1.0.6 -> 1.0.7 2015-10-26 14:45:13 +01:00
lprof
maim maim: 3.3.41 -> 3.4.46 2015-09-22 01:57:58 +02:00
mscgen
netpbm
nifskope
nip2 Major update to vips and nip2 to 8.0.2, changes: 2015-06-08 10:56:00 +01:00
optipng Fixed some licenses 2015-06-10 13:00:42 +02:00
panomatic
pdf2svg pdf2svg: add autoreconf hook (close #11888) 2015-12-23 07:36:25 +01:00
pdfread pdfread: use pillow instead of pil 2015-12-08 15:15:40 +01:00
pfstools
pgf Adding a pgf command line tool. 2015-01-23 16:09:33 +01:00
ploticus ploticus: update from 2.41 to 2.42 2015-05-19 22:06:32 +02:00
plotutils unmaintain a bunch of packages 2015-01-13 22:33:49 +01:00
pngcheck pngcheck: New package. 2014-12-01 17:05:20 +01:00
pngcrush pngcrush: update from 1.7.83 to 1.7.85 2015-06-07 15:43:53 +02:00
pngnq pngnq: update from 1.0 to 1.1 2015-02-13 11:02:27 +01:00
pngout Fix user-facing typos (mainly in descriptions) 2014-12-30 03:31:03 +01:00
pngquant
pngtoico
povray povray: fix build and add platforms 2015-02-15 18:33:47 +01:00
pstoedit
qrcode Add qrcode minimalistic QR-code decode/encode tool (for pure codes only) 2014-11-28 00:12:26 +03:00
qrencode
quirc mass rewrite of find parameters to cross-platform style 2015-09-06 10:26:30 +02:00
scrot x11: replace its usage by xlibsWrapper directly 2015-09-15 12:08:24 +02:00
sng sng: init at 1.0.6 2015-10-25 16:17:44 +02:00
transfig
unpaper Add package 'unpaper'. 2015-01-03 21:36:43 +01:00
vips vips: 8.0.2 -> 8.1.1 2015-12-15 03:46:35 +09:00
welkin Turn more licenses into lib.licenses style 2014-11-06 00:48:16 +00:00
wkhtmltopdf wkhtmltopdf: add myself as maintainer 2015-10-27 17:20:26 -07:00
zbar Remove unneeded 'with's from meta.platforms 2015-11-25 23:06:09 +01:00
zxing java: More default cleanups 2015-01-07 14:55:41 -08:00