Subject: A speed test on Apple's M1 processor

From: Jacques Menu <[email-masked]>
Date: Sun, 11 Sep 2022 11:54:19 +0200

Bonjour, 

Copie d’un message que je viens d’envoyer sur la liste anglophone. J’imagine qu’une traduction n’est pas nécessaire.

Bonne journée ensoleillée!

JM

—

Hello folks,

I ran this test with a 7.4Mb, 55 page score, to compare the binaries provided by lilypond.org <http://lilypond.org/> and the natives ones I (finally) built locally on my 8 Gb RAM Mac Mini. 
The necessary libraries have been installed using both MacPorts and Homebrew, since not all of them are supplied by a single source.

Both versions are 2.23.12.
The speed increase is roughly 20 to 25%, thanks to the avoidance of Intel CPU instructions emulation.

I will send the test file privately to anyone interested with pleasure, and you can send me larger files for more tests.

A nice day!

JM

--

First convert the LilyPond file to version 2.23.12.

Native convert-ly:

jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   5.80s user 0.04s system 99% cpu 5.871 total
jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   5.72s user 0.04s system 99% cpu 5.801 total
jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   5.71s user 0.03s system 99% cpu 5.748 total

LilyPond-supplied convert-ly. Here, there are variations for some reason:

jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>

convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   7.18s user 0.03s system 99% cpu 7.225 total
jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>

convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   7.25s user 0.04s system 99% cpu 7.323 total
jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin > time ./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> > Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>

convert-ly (GNU LilyPond) 2.23.12

convert-ly: Processing `Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/>'... 
Applying conversion: 2.20.0, 2.21.0, 2.21.2, 2.23.1, 2.23.2, 2.23.3, 2.23.4, 2.23.5, 2.23.6, 2.23.7, 2.23.8, 2.23.9, 2.23.10, 2.23.11, 2.23.12

./convert-ly Fischer_Suite_Sol_M_viola_II.ly <http://fischer_suite_sol_m_viola_ii.ly/> >   15.13s user 0.05s system 99% cpu 15.203 total

—

Then apply lilypond to the converted file. ‘… ... ...’ is used for the sake of compactness.

Native lilypond:

jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  7.52s user 0.75s system 98% cpu 8.387 total

jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  7.58s user 0.74s system 99% cpu 8.350 total

jacquesmenu@macmini:/Volumes/JMI_Volume/JMI_Developpement/lilypond/release/binaries/lilypond/install/bin > time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  7.45s user 0.75s system 100% cpu 8.177 total

LilyPond-supplied lilypond. Here, there are variations:

jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin >  time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  11.12s user 0.86s system 97% cpu 12.271 total

jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin >  time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  11.16s user 0.81s system 98% cpu 12.103 total

jacquesmenu@macmini:/Applications/JMI_Applications/LilyPond/lilypond-2.23.12/bin >  time ./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>
GNU LilyPond 2.23.12 (running Guile 2.2)
Processing `Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>'
… … …
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 54 or 55 pages...
Drawing systems...
Converting to `Fischer_Suite_Sol_M_viola_II_2.23.12.pdf'...
fatal error: failed files: "Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>"
./lilypond Fischer_Suite_Sol_M_viola_II_2.23.12.ly <http://fischer_suite_sol_m_viola_ii_2.23.12.ly/>  11.21s user 0.80s system 98% cpu 12.153 total

--