[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCHES] Use a better SRFI-64 implementation.
From: |
Taylan Kammer |
Subject: |
Re: [PATCHES] Use a better SRFI-64 implementation. |
Date: |
Tue, 11 May 2021 16:32:08 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 |
On 10.05.2021 20:25, Taylan Kammer wrote:
>
> - Improved expand-time performance for large test suites
>
I thought it would be a good idea to quantify this, so I
benchmarked the compilation performance of a test suite
of 289 tests (that of the scheme-bytsetructures library),
and had the following results.
The first three compilations are with stock Guile 3.0.7,
and the latter three are with the patch that replaces
the SRFI-64 implementation applied to 3.0.7.
=== snip ===
$ touch run-tests.guile.scm && time /opt/guile-3.0.7/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m9.465s
user 0m12.787s
sys 0m2.179s
$ touch run-tests.guile.scm && time /opt/guile-3.0.7/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m9.419s
user 0m12.988s
sys 0m1.842s
$ touch run-tests.guile.scm && time /opt/guile-3.0.7/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m9.387s
user 0m13.132s
sys 0m1.656s
$ touch run-tests.guile.scm && time /opt/guile-master/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m4.371s
user 0m5.903s
sys 0m1.239s
$ touch run-tests.guile.scm && time /opt/guile-master/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m4.556s
user 0m6.836s
sys 0m1.502s
$ touch run-tests.guile.scm && time /opt/guile-master/bin/guild compile -L .
run-tests.guile.scm
wrote `.../run-tests.guile.scm.go'
real 0m4.493s
user 0m6.273s
sys 0m1.767s
=== /snip ===
As you can see, the time to compile the test suite is cut in half.
Here's the test suite used for the benchmark:
https://github.com/TaylanUB/scheme-bytestructures/blob/master/run-tests.body.scm
(That file is included from run-test.guile.scm.)
- Taylan