aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2021-08-09 23:36:23 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2021-08-15 19:44:59 +0200
commit9ee598f110bc47203113c39a26b2d61b7c92f755 (patch)
tree25ac1793decfda5429b96fd26ae8f950507f1019 /module/vcomponent
parentRender attachements to HTML frontend. (diff)
downloadcalp-9ee598f110bc47203113c39a26b2d61b7c92f755.tar.gz
calp-9ee598f110bc47203113c39a26b2d61b7c92f755.tar.xz
Add TODO about bad string-append performance.
Diffstat (limited to 'module/vcomponent')
-rw-r--r--module/vcomponent/ical/parse.scm7
1 files changed, 7 insertions, 0 deletions
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