Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Improve perf of io/file-attributes using CLJS Bean #969

@mfikes

Description

@mfikes

The CLJS Bean library provides a faster alternative to js->clj, and this can be used in io/file-attributes for a substantial speedup:

Before:

cljs.user=> (require '[planck.io :as io] '[planck.core :refer [file-seq]])
nil
cljs.user=> (let [files (doall (file-seq "/Users/mfikes/Documents"))]
       #_=>  (time (transduce (comp (map io/file-attributes) (map :reference-count)) + files)))
"Elapsed time: 31.728287 msecs"
1432

After:

cljs.user=> (require '[planck.io :as io] '[planck.core :refer [file-seq]])
nil
cljs.user=> (let [files (doall (file-seq "/Users/mfikes/Documents"))]
       #_=>  (time (transduce (comp (map io/file-attributes) (map :reference-count)) + files)))
"Elapsed time: 13.202166 msecs"
1432

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions