[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extremly slow for format & string-join
From: |
Ludovic Courtès |
Subject: |
Re: Extremly slow for format & string-join |
Date: |
Tue, 02 Apr 2013 17:56:16 +0200 |
User-agent: |
Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.3 (gnu/linux) |
Mark H Weaver <address@hidden> skribis:
> Indeed, the implementation of 'string-join' was very bad: about O(n^2)
[...]
> Before:
>
> scheme@(guile-user)> ,time (define s (string-join (make-list 10000 "test")
> "-"))
> ;; 0.998800s real time, 0.996677s run time. 0.984885s spent in GC.
> scheme@(guile-user)> ,time (define s (string-join (make-list 100000 "test")
> "-"))
> ;; 98.006569s real time, 97.817077s run time. 97.795970s spent in GC.
>
> After:
>
> scheme@(guile-user)> ,time (define s (string-join (make-list 10000 "test")
> "-"))
> ;; 0.006362s real time, 0.006351s run time. 0.000000s spent in GC.
> scheme@(guile-user)> ,time (define s (string-join (make-list 100000 "test")
> "-"))
> ;; 0.028513s real time, 0.028457s run time. 0.022235s spent in GC.
> scheme@(guile-user)> ,time (define s (string-join (make-list 1000000 "test")
> "-"))
> ;; 0.303098s real time, 0.302543s run time. 0.289639s spent in GC.
> scheme@(guile-user)> ,time (define s (string-join (make-list 10000000 "test")
> "-"))
> ;; 3.288105s real time, 3.281922s run time. 3.174460s spent in GC.
Nice!
Ludo’.
Re: Extremly slow for format & string-join, Mark H Weaver, 2013/04/01
Re: Extremly slow for format & string-join, Thien-Thi Nguyen, 2013/04/01