Go to file
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
doc docs: kernelPackagesFor -> linuxPackagesFor 2016-01-09 06:02:00 +08:00
lib lib.getVersion: extend the function to cope with strings as well as derivations 2016-01-05 20:09:39 +01:00
maintainers copy-tarballs.pl: Create redirects before uploading file 2015-12-16 15:39:08 +01:00
nixos Revert "nixos/qemu-vm: Disable cache for $NIX_DISK_IMAGE" 2016-01-11 11:29:16 +01:00
pkgs gnuplot: Improve startup performance 2016-01-11 15:37:07 +01:00
.gitignore gitignore: pkgs/development/libraries/qt-5/*/tmp/ 2015-02-21 11:39:20 -06:00
.mention-bot .mention-bot: remove illegal comment (close #11488) 2015-12-15 14:46:39 +01:00
.travis.yml travis-ci: use trusty (has 7.5G ram compared to previous 3) 2015-11-02 13:04:03 +01:00
.version .version: remove trailing newline 2015-08-27 00:30:42 +02:00
CONTRIBUTING.md CONTRIBUTING.md: add a notice about licensing 2015-12-19 14:38:00 +01:00
COPYING Update copyright to include contributors 2015-12-18 18:16:54 +01:00
default.nix Expose minimum required Nix version. 2015-11-26 23:11:11 +08:00
README.md Set issuestats badges to flat style 2016-01-02 16:31:47 +00:00

logo

Build Status Issue Stats Issue Stats

Nixpkgs is a collection of packages for the Nix package manager. It is periodically built and tested by the hydra build daemon as so-called channels. To get channel information via git, add nixpkgs-channels as a remote:

% git remote add channels git://github.com/NixOS/nixpkgs-channels.git

For stability and maximum binary package support, it is recommended to maintain custom changes on top of one of the channels, e.g. nixos-15.09 for the latest release and nixos-unstable for the latest successful build of master:

% git remote update channels
% git rebase channels/nixos-15.09

For pull-requests, please rebase onto nixpkgs master.

NixOS linux distribution source code is located inside nixos/ folder.

Communication: