The main loop is pretty straight forward.
(defn write-to-file [#^String file] (with-open [s (FileOutputStream. file)] (loop [i 0 r (transient [])] (if (< i 1e3) (recur (inc i) (conj! r (with-time (doto s (.write test-row) (.flush))))) (persistent! r)))))
Here is the gist of the rest.
I've used incanter to plot the data.
And this is one of the plots that I've got, when I ran it on my MacBook Pro.
As you can see there is quite a bit of jitter and that will affect latency. On our production Linux servers after tuning the file system, those jitters almost disappeared. The next step is to use Real-Time OS and RTSJ.
No comments:
Post a Comment