tools.cat: significant performance improvement using binary.
Before (using strings): 77MiB/s After (using byte-arrays): 3.06GiB/shandle-patch-and-put
parent
dbb9bb42ca
commit
5e9b804d66
|
@ -1,16 +1,15 @@
|
||||||
! Copyright (C) 2010 John Benediktsson
|
! Copyright (C) 2010 John Benediktsson
|
||||||
! See http://factorcode.org/license.txt for BSD license
|
! See http://factorcode.org/license.txt for BSD license
|
||||||
|
|
||||||
USING: command-line formatting kernel io io.encodings.binary
|
USING: accessors command-line formatting fry io io.encodings
|
||||||
io.files namespaces sequences strings ;
|
io.encodings.binary io.files kernel namespaces sequences ;
|
||||||
|
|
||||||
IN: tools.cat
|
IN: tools.cat
|
||||||
|
|
||||||
: cat-lines ( -- )
|
|
||||||
[ print flush ] each-line ;
|
|
||||||
|
|
||||||
: cat-stream ( -- )
|
: cat-stream ( -- )
|
||||||
[ >string write flush ] each-block ;
|
input-stream get dup decoder? [ stream>> ] when
|
||||||
|
output-stream get dup encoder? [ stream>> ] when
|
||||||
|
'[ _ stream-write ] each-stream-block ;
|
||||||
|
|
||||||
: cat-file ( path -- )
|
: cat-file ( path -- )
|
||||||
dup exists? [
|
dup exists? [
|
||||||
|
@ -18,9 +17,9 @@ IN: tools.cat
|
||||||
] [ "%s: not found\n" printf flush ] if ;
|
] [ "%s: not found\n" printf flush ] if ;
|
||||||
|
|
||||||
: cat-files ( paths -- )
|
: cat-files ( paths -- )
|
||||||
[ dup "-" = [ drop cat-lines ] [ cat-file ] if ] each ;
|
[ dup "-" = [ drop cat-stream ] [ cat-file ] if ] each ;
|
||||||
|
|
||||||
: run-cat ( -- )
|
: run-cat ( -- )
|
||||||
command-line get [ cat-lines ] [ cat-files ] if-empty ;
|
command-line get [ cat-stream ] [ cat-files ] if-empty ;
|
||||||
|
|
||||||
MAIN: run-cat
|
MAIN: run-cat
|
||||||
|
|
Loading…
Reference in New Issue