Subject: bug#40626: Poor performance on low-end ARMv7 devices

From: Danny Milosavljevic <[email-masked]>
Date: Tue, 14 Apr 2020 21:08:59 +0200

For comparison, on a Banana Pi M2 Ultra I get:

root@bpi-iot-ros-ai:/# time guix build hello -d --no-grafts
/gnu/store/yp46hszc04dx2zy6kscy1zmjfg9y8flq-hello-2.10.drv

real    0m13.481s
user    0m11.230s
sys     0m0.900s

root@bpi-iot-ros-ai:/# time guix build hello -d --no-grafts
/gnu/store/yp46hszc04dx2zy6kscy1zmjfg9y8flq-hello-2.10.drv

real    0m11.471s
user    0m10.820s
sys     0m0.380s

root@bpi-iot-ros-ai:/# guix repl
GNU Guile 2.2.4
Copyright (C) 1995-2017 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guix-user)> ,time (use-modules (guix) (gnu) (gnu packages base))
;; 3.360000s real time, 3.270000s run time.  0.519000s spent in GC.
scheme@(guix-user)> (define s (open-connection))
scheme@(guix-user)> ,time (package-derivation s hello #:graft? #f)
$1 = #<derivation /gnu/store/yp46hszc04dx2zy6kscy1zmjfg9y8flq-hello-2.10.drv => /gnu/store/cp0qvs3vxrqiyyxfi8556n52x7ax8khf-hello-2.10 14fabb8>
;; 6.829000s real time, 6.579000s run time.  1.019000s spent in GC.

Processor is a Cortex A7.

Note:

You can do some RAM training and if RAM is connected better on your board,
you can sometimes have staggering speed gains.

See also https://linux-sunxi.org/A10_DRAM_Controller_Calibration