guile-devel
[Top][All Lists]
Advanced

[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’.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]