2
그래서 내가 클로저 subvec O (1) 대신 O (n)?
(def a (vec (range 1000000)))
(def b (vec (range 100000)))
이 두 벡터
(time (dorun (subvec b 1 100000)))
=>"Elapsed time: 3.585556 msecs"
(time (dorun (subvec a 1 1000000)))
=>"Elapsed time: 43.088316 msecs"
기타 문서의 나머지 부분을이 작업은 O 소요 말한다 (1). 내가 놓친 게 있니?
나는 볼 수있다. 그래서 나는 그것의 성능을 시험하기 위해'do (subvec b 1) nil '과 같은 것을 할 수있다. – LoveProgramming
정말 적절한 벤치마킹 라이브러리를 사용해야합니다. [Criterium] (https://github.com/hugoduncan/criterium)은 표준 Clojure 솔루션입니다. ('(criterium.core : as c)'),'(c/bench (subvec b 1))'). JIT 컴파일러가있는 환경에서 바로 벤치마킹을하는 것은 상당히 어렵습니다. –