Fast read-u8vector pasted by sjamaan on Wed Jun 24 15:12:10 2015
(use extras srfi-4) (define (read-u8vector #!optional n (p ##sys#standard-input)) (let ((str (##sys#read-string/port n p))) (##core#inline "C_string_to_bytevector" str) (##sys#make-structure 'u8vector str)))
no title pasted by anonymous on Wed Jun 24 15:18:47 2015
with above read-u8vector (approx 124 calls per run): ----- $ time csi -s extractor.scm #: 124 0.14s CPU time, 0.024s GC time (major), 27453/4760 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.221s user 0m0.304s sys 0m0.016s $ time csi -s extractor.scm #: 124 0.128s CPU time, 0.032s GC time (major), 27586/4777 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.211s user 0m0.284s sys 0m0.004s $ time csi -s extractor.scm #: 124 0.14s CPU time, 0.02s GC time (major), 27561/4769 mutations (total/tracked), 5/210 GCs (major/minor) real 0m5.194s user 0m0.288s sys 0m0.012s ----- with original u8vector-read: during compilation: ----- (stargate-lolevel.scm:170) in procedure call to `read-u8vector', expected argument #1 of type `fixnum', but was given an argument of type `false' ----- ----- $ time csi -s extractor.scm #: 124 0.56s CPU time, 0.028s GC time (major), 44719/8079 mutations (total/tracked), 6/4362 GCs (major/minor) real 0m5.554s user 0m0.700s sys 0m0.020s $ time csi -s extractor.scm #: 124 0.596s CPU time, 0.036s GC time (major), 44745/8017 mutations (total/tracked), 6/4364 GCs (major/minor) real 0m5.586s user 0m0.724s sys 0m0.028s $ time csi -s extractor.scm #: 124 0.588s CPU time, 0.028s GC time (major), 44745/8017 mutations (total/tracked), 6/4364 GCs (major/minor) real 0m5.582s user 0m0.724s sys 0m0.020s -----
no title added by anonymous on Wed Jun 24 15:21:39 2015
with (string->blob/shared (string-read ...)) ----- $ time csi -s extractor.scm #: 124 0.136s CPU time, 0.028s GC time (major), 27528/4736 mutations (total/tracked), 4/213 GCs (major/minor) real 0m5.201s user 0m0.292s sys 0m0.004s $ time csi -s extractor.scm #: 124 0.124s CPU time, 0.032s GC time (major), 27461/4755 mutations (total/tracked), 5/212 GCs (major/minor) real 0m5.223s user 0m0.292s sys 0m0.020s $ time csi -s extractor.scm #: 124 0.124s CPU time, 0.028s GC time (major), 27486/4763 mutations (total/tracked), 5/212 GCs (major/minor) real 0m5.230s user 0m0.308s sys 0m0.000s -----