CodeEval で Clojure を実行するととても遅い
(2019年3月4日 追記)
こちらの記述によると、 Codeeavl は既にサービス終了しているようです。 残念ですね・・・。
既にドメインは他のサービスにリダイレクトされていますし、以下のサポート記事も消えてしまってました。
(追記 ここまで)
Clojure をもう少し書けるようになりたいな、と思って Ruby で書いていた CodeEval の課題の幾つかを Clojure で書きなおしてみたんだけど、実行速度が Ruby と比較するととても遅い。。。
例えば Open Challenges の Lowercase だと、
- Ruby : 187 ms
- Clojure : 5052 ms
27倍くらい時間が掛かっているし、メモリ量も
- Ruby 3.4MB
- Clojure 58.1MB
と17倍くらいの開きが。。。
別にランキング入りを狙っているわけではないので、アホみたいに高速で動くコードを書きたいというわけではないですが、初学者として「俺の書いているコード、これじゃ全然ダメなんじゃないか?」と、かなり不安に思っています。
スクリーンショットも貼っておきます。
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)
posted with amazlet at 13.11.22
ニコラ・モドリック 安部 重成
技術評論社
売り上げランキング: 57,899
技術評論社
売り上げランキング: 57,899
プログラミングClojure 第2版
posted with amazlet at 13.11.22
Stuart Halloway and Aaron Bedra
オーム社
売り上げランキング: 134,200
オーム社
売り上げランキング: 134,200
プログラミング言語 Ruby
posted with amazlet at 13.11.22
まつもと ゆきひろ David Flanagan
オライリージャパン
売り上げランキング: 197,492
オライリージャパン
売り上げランキング: 197,492
コメント