Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
~/c/boot-fileset-perf boot watch modify-random
Starting file watcher (CTRL-C to quit)...
1 files in fileset
Elapsed time: 0.156 sec
21 files in fileset
Elapsed time: 0.085 sec
100 files in fileset
Elapsed time: 0.211 sec
100 files in fileset
Elapsed time: 0.305 sec
100 files in fileset
Elapsed time: 0.212 sec
100 files in fileset
Elapsed time: 0.190 sec
100 files in fileset
Elapsed time: 0.216 sec
100 files in fileset
Elapsed time: 0.174 sec
100 files in fileset
Elapsed time: 0.180 sec
100 files in fileset
Elapsed time: 0.166 sec
100 files in fileset
Elapsed time: 0.238 sec
100 files in fileset
Elapsed time: 0.192 sec
100 files in fileset
Elapsed time: 0.194 sec
100 files in fileset
Elapsed time: 0.183 sec
496 files in fileset
Elapsed time: 1.675 sec
889 files in fileset
Elapsed time: 2.594 sec
1000 files in fileset
Elapsed time: 3.135 sec
1000 files in fileset
Elapsed time: 1.690 sec
1000 files in fileset
Elapsed time: 2.023 sec
1000 files in fileset
Elapsed time: 2.004 sec
1000 files in fileset
Elapsed time: 2.005 sec
1000 files in fileset
Elapsed time: 2.105 sec
1000 files in fileset
Elapsed time: 2.030 sec
1000 files in fileset
Elapsed time: 1.834 sec
1000 files in fileset
Elapsed time: 1.809 sec
1000 files in fileset
Elapsed time: 2.321 sec
1000 files in fileset
Elapsed time: 2.865 sec
1347 files in fileset
Elapsed time: 4.281 sec
2335 files in fileset
java.io.FileNotFoundException: /Users/martin/.boot/cache/tmp/Users/martin/code/boot-fileset-perf/lh5/-c4hx1l/388.txt (No such file or directory)
...
clojure.java.io/fn io.clj: 344
...
clojure.java.io/copy io.clj: 396
...
clojure.core/partial/fn core.clj: 2493
boot.file/copy-with-lastmod file.clj: 145
boot.file/sync! file.clj: 191
...
clojure.core/apply core.clj: 634
boot.core/sync-target/fn core.clj: 693
boot.core/sync-target core.clj: 692
boot.core/run-tasks/fn core.clj: 701
boot.user/eval310/fn/fn/fn boot.user8419743443712433900.clj: 21
boot.task.built-in/fn/fn/fn/fn/fn/fn built_in.clj: 233
boot.task.built-in/fn/fn/fn/fn/fn built_in.clj: 233
boot.task.built-in/fn/fn/fn/fn built_in.clj: 230
boot.core/run-tasks core.clj: 701
boot.core/boot/fn core.clj: 711
clojure.core/binding-conveyor-fn/fn core.clj: 1916
...
Elapsed time: 4.039 sec
3000 files in fileset
Elapsed time: 8.945 sec
3000 files in fileset
Elapsed time: 5.314 sec
3000 files in fileset
Elapsed time: 7.689 sec
3000 files in fileset
Elapsed time: 8.047 sec
3000 files in fileset
java.io.FileNotFoundException: /Users/martin/.boot/cache/tmp/Users/martin/code/boot-fileset-perf/lh5/-c4hx1l/321.txt (No such file or directory)
...
clojure.java.io/fn io.clj: 344
...
clojure.java.io/copy io.clj: 396
...
clojure.core/partial/fn core.clj: 2493
boot.file/copy-with-lastmod file.clj: 145
boot.file/sync! file.clj: 191
...
clojure.core/apply core.clj: 634
boot.core/sync-target/fn core.clj: 693
boot.core/sync-target core.clj: 692
boot.core/run-tasks/fn core.clj: 701
boot.user/eval310/fn/fn/fn boot.user8419743443712433900.clj: 21
boot.task.built-in/fn/fn/fn/fn/fn/fn built_in.clj: 233
boot.task.built-in/fn/fn/fn/fn/fn built_in.clj: 233
boot.task.built-in/fn/fn/fn/fn built_in.clj: 230
boot.core/run-tasks core.clj: 701
boot.core/boot/fn core.clj: 711
clojure.core/binding-conveyor-fn/fn core.clj: 1916
...
Elapsed time: 4.377 sec
3000 files in fileset
Elapsed time: 7.317 sec
3000 files in fileset
Elapsed time: 6.987 sec
3000 files in fileset
Elapsed time: 6.327 sec
3000 files in fileset
Elapsed time: 5.961 sec
3000 files in fileset
Elapsed time: 6.440 sec
3000 files in fileset
Elapsed time: 5.182 sec
3000 files in fileset
Elapsed time: 6.530 sec
3000 files in fileset
Elapsed time: 6.601 sec
-perf boot watch modify-random
Starting file watcher (CTRL-C to quit)...
100 files in fileset
Elapsed time: 0.246 sec
100 files in fileset
Elapsed time: 0.260 sec
100 files in fileset
Elapsed time: 0.186 sec
100 files in fileset
Elapsed time: 0.171 sec
100 files in fileset
Elapsed time: 0.152 sec
100 files in fileset
Elapsed time: 0.118 sec
100 files in fileset
Elapsed time: 0.138 sec
100 files in fileset
Elapsed time: 0.153 sec
100 files in fileset
Elapsed time: 0.121 sec
100 files in fileset
Elapsed time: 0.167 sec
100 files in fileset
Elapsed time: 0.143 sec
100 files in fileset
Elapsed time: 0.146 sec
100 files in fileset
Elapsed time: 0.123 sec
100 files in fileset
Elapsed time: 0.126 sec
100 files in fileset
Elapsed time: 0.119 sec
100 files in fileset
Elapsed time: 0.175 sec
427 files in fileset
Elapsed time: 1.304 sec
751 files in fileset
Elapsed time: 2.590 sec
1000 files in fileset
Elapsed time: 2.723 sec
1000 files in fileset
Elapsed time: 1.374 sec
1000 files in fileset
Elapsed time: 1.430 sec
1000 files in fileset
Elapsed time: 1.233 sec
1000 files in fileset
Elapsed time: 1.173 sec
1000 files in fileset
Elapsed time: 1.225 sec
1000 files in fileset
Elapsed time: 1.429 sec
1000 files in fileset
Elapsed time: 1.122 sec
1000 files in fileset
Elapsed time: 1.141 sec
1000 files in fileset
Elapsed time: 1.322 sec
1000 files in fileset
Elapsed time: 1.175 sec
1000 files in fileset
Elapsed time: 1.430 sec
1000 files in fileset
Elapsed time: 1.269 sec
1000 files in fileset
Elapsed time: 1.124 sec
1000 files in fileset
Elapsed time: 2.468 sec
1000 files in fileset
Elapsed time: 3.316 sec
1588 files in fileset
Elapsed time: 5.153 sec
2783 files in fileset
Elapsed time: 6.785 sec
3000 files in fileset
Elapsed time: 4.538 sec
3000 files in fileset
Elapsed time: 7.068 sec
3000 files in fileset
Elapsed time: 7.335 sec
3000 files in fileset
Elapsed time: 5.374 sec
3000 files in fileset
Elapsed time: 3.994 sec
3000 files in fileset
Elapsed time: 3.327 sec
3000 files in fileset
Elapsed time: 4.227 sec
3000 files in fileset
Elapsed time: 4.012 sec
3000 files in fileset
Elapsed time: 4.764 sec
3000 files in fileset
Elapsed time: 4.395 sec
3000 files in fileset
Elapsed time: 4.342 sec
3000 files in fileset
Elapsed time: 5.179 sec
3000 files in fileset
Elapsed time: 3.931 sec
3000 files in fileset
Elapsed time: 4.078 sec
3000 files in fileset
Elapsed time: 3.945 sec
@martinklepsch
Copy link
Author

100 files: 200ms
1000 files: 2s
3000 files: 6s

pretty linear overall

@martinklepsch
Copy link
Author

Same kind of test but with https://github.com/boot-clj/boot/tree/disable-target-during-build

100 files: 150ms
1000 files: 1.4s
3000 files: 4s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment