Let’s say that you want to profile a piece of code in clojurescript. There is a cool macro for that in clojurescript: time.

`time`

evaluates an expression and prints the time it took and returns the value of the expression.

The interesting question is:

Where does

`time`

print the time it took?

Usually, it prints in the browser console. This is because, you have probably called `(enable-console-print!)`

somewhere in your code.

But as a KLIPSE user, you want the time to be displayed in the evaluation rectangle instead of inside the console.

It’s simple to achieve that using with-out-str.

Let’s see it in action by comparing the running time of two naive implementations for prime number generation.

Here is a very naive implementation:

```
(defn is-prime? [n]
(empty? (filter #(= 0 (mod n %)) (range 2 n))))
(defn nth-prime [n]
(last (take n (filter #(is-prime? %) (iterate inc 2)))))
(with-out-str (time (nth-prime 50)))
```

And now a less naive implementation:

```
(defn is-prime-opt? [n]
(or (= 2 n)
(not-any? #(= 0 (mod n %)) (range 3 (inc (Math/sqrt n)) 2))))
(defn nth-prime-opt [n]
(last (take n (filter #(is-prime-opt? %) (cons 2 (iterate (partial + 2) 3))))))
(with-out-str (time (nth-prime-opt 50)))
```