2017-01-11 14 views
1

データオブジェクトのデータサービスとインメモリキャッシュを提供するために、角度2で依存性注入を頻繁に使用します。私は、目的の種類ごとに注射可能なものを持っているのは当然です。インジェクタブルは角度2のパフォーマンスにどのように影響するか

すべての注入可能な関数とパラメータを1つの大きなクラスに入れてすべてのコンポーネントに注入すると、パフォーマンスはどのように影響を受けますか?

これは私が何を意味するか説明することができます:

は私が持っている場合と言うの注射ABCとコンポーネントabc(より多くのことが、あなたのアイデアを得ることができ)。今すぐAaに注入されます。 Bbに、Ccに注射する。すべての注射液をABCにまとめて、abcという成分に注入すると、これはどのように私のパフォーマンスに影響しますか?

答えて

4

すべての注入可能な関数とパラメータを1つの大きなクラスに入れてすべてのコンポーネントに注入すると、パフォーマンスにどのような影響がありますか?

AoTを使用する場合、AoTはDIの静的コードを生成するため、測定可能な効果はありません。

platform_dynamic(AoTなし)を使用すると、小さな違いが生じる場合があります。

あなたのアプローチが意味を成すためには、変更の有無にかかわらずベンチマークテストを行い、これがパフォーマンスに影響を与えるかどうかについて重大なフィードバックを得る必要があります。

一般に、特定のコードがパフォーマンスを傷つけることが示されていない場合(早すぎる最適化はしないでください)、パフォーマンスよりもコード品質が優先されます。

単一のサーバー要求が以前よりも少なくて済むようにコードを変更できる場合は、すべてのDIが一緒に必要とするよりも多くの時間を節約できます。

+0

ありがとうございました。 「あなたのコードを変更して、以前より少ない単一のサーバー要求が必要な場合は、すべてのDIが一緒に必要とするより多くの時間を節約できるでしょう」というコメントに興味があります。サーバーリクエストがJSのパフォーマンスにどのように影響するかについて詳しく説明できますか?私は実際にステータスを取得するために2秒ごとにサーバにpingする必要がある状況に遭遇しました。これに対してより良い提案がありますか? – Northern

+0

私はそれを遠近法で述べました。サーバー要求は、ブラウザ内で完全に実行される操作よりも約3倍の時間がかかります。通常、最適化作業は、既に高速であるものよりも多くの時間が費やされている場所で良い結果を出します。 –

1

パフォーマンスを脇に置いて、すべての依存関係を含む傘オブジェクトには別の問題があります。

コンポーネントの外部依存関係が何かを分析して判断するのが少し難しくなるため、コードを読みにくくする可能性があります。コンポーネントの依存関係を理解するために、コードとリファレンスを調べる必要があります。私が信じる理想的な実装ではありません。

関連する問題