CodeEval で Clojure を実行するととても遅い

(2019年3月4日 追記)

 こちらの記述によると、 Codeeavl は既にサービス終了しているようです。  残念ですね・・・。
 既にドメインは他のサービスにリダイレクトされていますし、以下のサポート記事も消えてしまってました。

(追記 ここまで)

Clojure をもう少し書けるようになりたいな、と思って Ruby で書いていた CodeEval の課題の幾つかを Clojure で書きなおしてみたんだけど、実行速度が Ruby と比較するととても遅い。。。

例えば Open ChallengesLowercase だと、

  • Ruby : 187 ms
  • Clojure : 5052 ms

27倍くらい時間が掛かっているし、メモリ量も

  • Ruby 3.4MB
  • Clojure 58.1MB

と17倍くらいの開きが。。。
別にランキング入りを狙っているわけではないので、アホみたいに高速で動くコードを書きたいというわけではないですが、初学者として「俺の書いているコード、これじゃ全然ダメなんじゃないか?」と、かなり不安に思っています。

スクリーンショットも貼っておきます。

Screen Shot 2013-11-22 at 10.24.44 AM.png

Ruby 版のコードはこんな感じ。

file = open(ARGV[0])
file.each {|line| print line.downcase! }
file.close

Clojure 版はこんな感じ。

(println (.toLowerCase (slurp (first *command-line-args*))))

「CodeEval で実行するの場合、こう書いた方が早いよ!」というのをご存知の方がいらっしゃいましたら、是非教えて下さい。よろしくお願いします。

おいしいClojure入門 (Software Design plus)
ニコラ・モドリック 安部 重成
技術評論社
売り上げランキング: 57,899
プログラミングClojure 第2版
Stuart Halloway and Aaron Bedra
オーム社
売り上げランキング: 134,200
プログラミング言語 Ruby
プログラミング言語 Ruby
posted with amazlet at 13.11.22
まつもと ゆきひろ David Flanagan
オライリージャパン
売り上げランキング: 197,492