File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2424(simple-benchmark [coll arr] (array-reduce coll + 0 ) 1 )
2525(simple-benchmark [coll arr] (array-reduce coll sum 0 ) 1 )
2626
27+ (println " ;; areduce" )
28+ (def x (atom 0 ))
29+ (simple-benchmark [arr (to-array (range 1000000 ))] (reset! x (areduce arr i ret 0 (+ ret (aget arr i)))) 1 )
30+
31+ (println " ;; amap" )
32+ (simple-benchmark [arr (to-array (range 1000000 ))] (amap arr i ret (* 10 (aget arr i))) 1 )
33+
2734(println " ;;; instance?" )
2835; ; WARNING: will get compiled away under advanced
2936(simple-benchmark [coll []] (instance? PersistentVector coll) 1000000 )
Original file line number Diff line number Diff line change 25762576 array ret."
25772577 [a idx ret expr]
25782578 `(let [a# ~a
2579+ l# (alength a#)
25792580 ~ret (cljs.core/aclone a#)]
25802581 (loop [~idx 0 ]
2581- (if (< ~idx ( alength a#) )
2582+ (if (< ~idx l# )
25822583 (do
25832584 (aset ~ret ~idx ~expr)
25842585 (recur (inc ~idx)))
25892590 and return value named ret, initialized to init, setting ret to the
25902591 evaluation of expr at each step, returning ret."
25912592 [a idx ret init expr]
2592- `(let [a# ~a]
2593+ `(let [a# ~a
2594+ l# (alength a#)]
25932595 (loop [~idx 0 ~ret ~init]
2594- (if (< ~idx ( alength a#) )
2596+ (if (< ~idx l# )
25952597 (recur (inc ~idx) ~expr)
25962598 ~ret))))
25972599
You can’t perform that action at this time.
0 commit comments