0

Clojure で一般的な http/ftp ファイル ダウンローダーを作成しようとしています。少し調査したところ、Java の API (BufferedReader BufferedInputStream など) または Clojure.java.io の API (ライター、リーダー、入力ストリーム、出力ストリーム) のいずれかを使用できることがわかりました。

  1. Clojure の API は Java の API よりも使いやすく読みやすいと思いましたが、パフォーマンスや速度などの点では、Java の API の方が優れているのでしょうか?

  2. どちらかを選択する他の理由はありますか?

  3. jvm プラットフォーム言語として、Clojure はパフォーマンスの観点から、ファイル ダウンローダ プロジェクトに適していますか? 調査を行っている間、jvm プラットフォームでの速度とメモリ パフォーマンスについて議論しているいくつかの投稿も読みました。言語の選択が自分のプロジェクトに適しているかどうかを知りたいと思います..

4

1 に答える 1

1

Clojure API は、Clojure のイディオムを念頭に置いて作成されているため、より自然に感じられるはずです。もちろん、引き続き Java API を使用することはできますが、多くの Java 相互運用関数呼び出しが予想されます。
もちろん、それには何の問題もありませんが、流暢な Clojure API ではないだけです。

Java、Scala、Clojure、JR​​uby のいずれを使用していても、JVM の起動は遅くなります。Clojure は本当に高性能です。ところで、Clojure ではプロジェクトをバイトコード形式にコンパイルできることをご存知ですか?

Clojure はファイル ダウンローダ プロジェクトに適していますか?
私は間違いなく言うでしょう!
主な利点の 1 つは、Clojure が並行処理を処理する方法です。考えてみると、あなたのプロジェクトは多くのスレッド化、ロック、同期を行うことになります (多くのファイルを同時にダウンロードできるダウンローダーを構築しているのですね)。
Clojure では、エージェント (プロジェクトにとって非常に便利)、ref、atom などの高度な抽象化を使用します。

JVMのパフォーマンスとメモリ管理について読んだリソースについてはよくわかりません。JVM は洗練されたソフトウェアです。JVM は、メモリを管理するための多くの戦略を提供します。デスクトップ アプリケーションに適したものもあれば、サーバーに適したものもあります。アプリケーション/システム要件に応じて、適切な戦略を選択できます。

ところで、Swing でアプリケーションを構築する予定はありますか? はい、Clojure を使用することにした場合は、Seesawをご覧ください。

Seesaw は、Clojure でユーザー インターフェイスを構築するためのライブラリ/DSL です。たまたま Swing 上に構築されていますが、それを否定しないでください。

于 2013-08-09T08:17:04.403 に答える