I have a machine dual booted with Arch Linux and Ubuntu (16.04).
I have recently started using the Kakoune text editor, and noticed that its startup time is drastically different depending on which OS I am using. However I believe the underlying problem is not due to kakoune directly.
On startup, kakoune runs a bunch of shell scripts to enable integration with x11 and tmux, git, syntax highlighting/colorschemes, etc. This can be disabled to just load the 'vanilla' editor using the
kak -e q will start kakoune, run all startup scripts and exit immediately.
time kak -e q takes 1 second
time kak -n -e q (no shell scripts) finishes in under 20 millis.
time kak -e q takes about 450 millis
time kak -n -e q is again under 20 millis
After trimming the fat and removing some of the startup scripts I did see an improvement on both OS's proportional to the amount removed.
I ran some benchmarks with UnixBench and found that the major differences between the two systems are seen in the 'process creation' and 'shell scripts' tests.
The shells scripts test measures the number of times per minute a process can start and reap a set of one, two, four and eight concurrent copies of a shell scripts where the shell script applies a series of transformation to a data file.
Here is the relevant output. Units in 'loops per second' more is better:
Process creation (1 parallel copy of tests) Arch: 3,822 Ubuntu: 5,297 Process creation (4 parallel copies of tests) Arch: 18,935 Ubuntu: 30,341 Shell Scripts (1 concurrent) (1 parallel copy of tests) Arch: 972 Ubuntu: 5,141 Shell Scripts (1 concurrent) (4 parallel copies of tests) Arch: 7,697 Ubuntu: 24,942 Shell Scripts (8 concurrent) (1 parallel copy of tests) Arch: 807 Ubuntu: 2,257 Shell Scripts (8 concurrent) (4 parallel copies of tests) Arch: 1,289 Ubuntu: 3,001
As you can see the Ubuntu system performs much better.
I have tested using different login shells, terminal emulators, recompiling kakoune, removing unneeded software to clean up the disk, etc. I am certain this is the bottleneck.
My question is: what can I do to further investigate this and improve performance of the Arch Linux system to match Ubuntu? Should I look into tuning the kernel?
- both systems use the same type of filesystem (ext4)
- I tend to use the Archlinux system more, and have noticed performance degrading over time
- Arch is on /dev/sda1 and is ~200GB. Ubuntu is on /dev/sda2, ~500GB. 1TB HDD.
Linux ark 4.14.13-1-ARCH #1 SMP PREEMPT Wed Jan 10 11:14:50 UTC 2018 x86_64 GNU/Linux
Linux sierra 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux