From 9ee598f110bc47203113c39a26b2d61b7c92f755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 9 Aug 2021 23:36:23 +0200 Subject: Add TODO about bad string-append performance. --- module/vcomponent/ical/parse.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'module/vcomponent/ical/parse.scm') diff --git a/module/vcomponent/ical/parse.scm b/module/vcomponent/ical/parse.scm index 8499d289..207c9ae8 100644 --- a/module/vcomponent/ical/parse.scm +++ b/module/vcomponent/ical/parse.scm @@ -47,6 +47,13 @@ ;; then this produces multiple broken unicode characters. ;; It could be solved by checking the start of the new line, ;; and the tail of the old line for broken char + ;; + ;; TODO This gets really slow when concatenating huge + ;; numbers of strings (31862 lines gave ~100s runtime). + ;; Almost all which was spent in repaing pipes in the GC. + ;; Possible solution would be to instead write to output-strings. + ;; Those should be faster since Guile then controlls the memory + ;; of the buffer manually, allowing efficient C memory operations. (cons (make-line (string-append (get-string (car done)) (string-drop line 1)) fname -- cgit v1.2.3