4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Clojureのvectorに対するlastは遅い

Posted at

ので、vectorだとわかっている場合はpeekを使うといい

vector_peek.clj
(def s (doall (range 2000000)))
(def v (vec s))
(def l (apply list s))

(time (first s))
(time (first v))
(time (first l))
(time (last s))
(time (last v))
(time (last l))
(time (nth s (dec (count s))))
(time (nth v (dec (count v))))
(time (nth l (dec (count l))))
(time (get v (dec (count v))))
(time (peek v))
Elapsed time: 0.007123 msecs
Elapsed time: 0.005308 msecs
Elapsed time: 0.003352 msecs
Elapsed time: 191.406869 msecs
Elapsed time: 129.120391 msecs
Elapsed time: 77.368283 msecs
Elapsed time: 243.091859 msecs
Elapsed time: 0.006216 msecs
Elapsed time: 29.659985 msecs
Elapsed time: 0.093308 msecs
Elapsed time: 0.006775 msecs
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?