2

あらゆる規模の効率的なアプリケーションを作成するためのフレームワークを開発しています。アプリケーションはモジュールで構成され (アプリケーションもモジュールです)、パフォーマンスは私にとって重要です。モジュール化などの既存のフレームワークがあることは知っていますが、独自のフレームワークを実装する必要がありました。個々のモジュールのパフォーマンスを考えすぎて最適化しましたが、オブジェクト間 (およびスレッド間) の通信は実装方法を決めることができません。私が検討したいくつかのオプションは次のとおりです。

  • NIOパイプ
  • イベント (リスナーの登録)
  • アプリケーション コンテキストのトランザクション キュー

私の質問は、ボトルネックとロックを回避するのにどちらが優れているかということです。または、アドバイスできる代替手段はありますか?

4

4 に答える 4

3

私の唯一のアドバイスは、そのように行かないことです。Bill Kがすでに述べたように、ほとんどの実装は大幅に高速で完全になります。さらに重要なのは、あなたがやろうとしていることを達成するための優れたリソースがあるということです。たとえば、EclipseとGlassfishv3がそのベルトの下にあるOSGiです。

個人的に私はあなたの説明に似たものを実装し、コンテナを再起動する必要なしに実行時にプラグインをロードしました。保守とデバッグは悪夢でした。さらに重要なのは、新しいモジュールを実装するのは比較的簡単でしたが(結局、私はそれを設計しました)、プログラミングするのは非常に困難でした。結局、クラスローダーについて多くのことを学びましたが、それだけでした。

于 2010-01-28T22:38:31.903 に答える
2

あまりにも多くの変数があります。それを知る唯一の方法は、メッセージング システムをプラグ可能な方法でコーディングして、さまざまな方法で記述し、コーディングしながら測定できるようにすることです。

フレームワークを使用して破棄したことは残念です。ほとんどのフレームワークは、自分で作成できるものよりもはるかに高速で、完全で、使いやすいものです。その要件を思いついた人は誰でも、直面し、場合によっては解雇されるべきです。

于 2010-01-28T22:31:54.977 に答える
1
i am developing a framework for creating efficient applications in all sizes

非常に一般的なアドバイスを与えるために、jbossのソースコードに飛び込んで、動作するはずのときにどのように動作するかを印象付けることをお勧めします(開始点として入手できる最も古いバージョンかもしれません)

于 2010-01-28T22:32:50.340 に答える
0

これが本番品質のコードにつながることを目的としたプロジェクトである場合は、独自のフレームワークを実装しないことを強くお勧めします。

まず、アプリケーションがフレームワークに何を要求するか、またはそのようなフレームワークを実装するために使用できるさまざまなテクノロジーについて、十分に理解していないことは明らかです。知識の欠如や、始めたときに何をしているのかわからないプロジェクトに着手するリスクを過小評価しないでください。

第二に、独自のフレームワークを実装する動機が間違っています。既存のフレームワークが大きすぎてニーズに対して複雑であることがわかった場合は、より単純なフレームワークを選択するか、仕事をするために必要なサブセットを学習してください...残りは無視してください。

第三に、それは半分まともなフレームワークでさえ設計および構築する多くの作業です。それはおそらく、実際のアプリケーションの構築に費やすべき時間です。確かに楽しいですが、上司はおそらく結果にもっと興味を持っています。

第4に、他の多くの人々が使用するフレームワークを使用することの本質的な利点を過小評価しないでください。たとえば、(SOのように)質問をするコミュニティ、フレームワークを改善するコミュニティ、CVにフレームワークを持っている雇用可能な人々。

最後に、独自のフレームワークを実装することにより、チーム/会社のために多くの追加の将来のメンテナンス作業を作成する可能性があります。あなたはそれを間違え、あなたの同僚は次の10年間、廊下を上下に罵倒するでしょう。フレームワークを100%正しく取得したとしても、組織内の誰かが、フレームワークに依存するアプリケーションの存続期間中、フレームワークを維持する必要があります。

于 2010-01-29T01:25:48.430 に答える