問題タブ [resource-management]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - spring によるグローバル リソースの初期化と解放
私たちのアプリケーションでは、通常、アプリケーション全体で使用されるいくつかのリソース (ユーティリティ) があります。たとえば、それは apacheHttpClient
である可能性があります。私の場合は、集中的なタスクConcurrencyUtils
のすべてのスレッド プールを管理するユーティリティ クラスです (リアクティブのスケジューラを追加します)。ストリームなど...たくさんのカスタムのもの)。cpu
io
春にコンテキストを初期化するとき、このような不自然なことをしなければなりません(静的リソースを初期化して破棄するため)
ConcurrencyUtil
使用しない単なる偽のクラスであることに注意してください。使用することはありませんが、静的メソッドを使用します。ConcurrencyUtils
このクラスは、init と destroy が呼び出されることを保証するだけです (すべての Bean が呼び出された後に destroy が呼び出されることを保証する方法がわかりません)。破壊されました)...
では、Spring コンテキストが Bean を作成する前と、Spring コンテキストがすべての Bean を解放した後 (そしてそれ自体が再利用可能になろうとしているとき) に、コードを実行するにはどうすればよいでしょうか?
春に静的リソースを初期化して解放する正しい方法は何ですか?
docker - Docker で cpu-shares と cpuset-cpus を混在させる
次のリソース割り当てで 2 つのコンテナーを実行したいと考えています。
- コンテナー「C1」: 予約済みの cpu1、20 個の cpu シェアを持つ共有 cpu2
- コンテナー「C2」: 予約済みの cpu3、80 個の cpu シェアを持つ共有 cpu2
この方法で 2 つのコンテナーを実行すると、次のようになります。
C1 は予想どおり cpu1 の 100% を使用しますが、cpu2 の 50% (20% ではなく) を使用し、C2 は cpu3 の 100% を使用し、cpu2 の 50% (80% ではなく) を使用します。
--cpu-shares オプションが無視されているようです。私が探している動作を取得する方法はありますか?
c++ - C++ で別のオブジェクトからオブジェクトを初期化する
私のプロジェクトには、さまざまな形式からロードおよび再ロードできる Resource オブジェクトがあります。ロード アルゴリズムは、さまざまな ResourceLoader サブクラスで実装されます。
ローダーは指定された形式で入力を読み取り、ターゲットの Resource オブジェクト R を初期化します。ローダーはリソース内に格納されるため、リソースが無効になると、格納されたローダーを使用して自身をリロードします。
問題は、ローダーがリソースを初期化する方法です。
- すべての InternalData フィールドをパブリックにします。それらへのクライアントアクセスを許可しますが、これは良くありません。
- Loader を Resource のフレンドにします。特定の形式の新しいローダーはそれぞれリソース ヘッダーに追加されるため、拡張性が失われ、拡張機能を作成するプログラマは基本コードに触れる必要があります。
- InternalData ごとにセッターを提供します。すべてのクライアントがデータを変更する可能性があるため、変更してはならないため、それらをすべて公開することはそれほど遠くありません。
- Resource::Setup(InternalData1, InternalData2, InternalDataN) を提供するか、それらすべてを何らかの構造体でラップして、その構造体を渡します。すべてのフィールドが一度に設定されることを除いて、3. と同じです。
問題は、 Resource クラスのフィールドは、拡張可能な一連のクラスからの書き込みにはアクセスできなければならず、クライアント コードからの書き込みにはアクセスできない必要があることです。良いOOPソリューションはありますか? ありがとう。
c++ - オブジェクトのデストラクタは、スコープ外に出ると自動的に呼び出されますか?
Scott Meyers Effective C++ を読んでいて、リソース管理について質問があります。この本の中で、彼は auto_ptr オブジェクトを使用してメモリを管理することを提案しています。これは、オブジェクトがスコープ外になると、オブジェクトが指すオブジェクトのデストラクタを自動的に呼び出すためです。以下に例を示します。
...
彼は、これは潜在的に問題があると主張しています。これは、メソッドが到達するのを妨げる多くのことが発生する可能性があるためですdelete pInv
(時期尚早の return ステートメント、スローされた例外など)。これは彼が代わりに提案するコードです
これは、範囲外になると何が起こってpInv
も削除されるため、機能します。
pInv
私の質問は次のとおりです。最初のコード ブロックで範囲外になったときに、デストラクタが呼び出されないのはなぜですか。時期尚早の return ステートメントがオブジェクトをスコープ外に押し出すのではないでしょうか?それとも C++ でのガベージ コレクションのしくみではないでしょうか?
うまくいけば、私は私の混乱を十分に説明しました。前もって感謝します!
unityscript - Unity でボタンをクリックしてオブジェクトをシーンに追加するにはどうすればよいですか?
ボタン クリックを使用してオブジェクトをシーンに移動する方法を知りたいです。
apache-spark - YARN の Spark で使用される vcore が少なすぎる
次の設定で、YARN クラスター (HDP 2.4) で Spark を使用しています。
- 1 マスターノード
- 64 GB RAM (50 GB 使用可能)
- 24コア(19コア使用可能)
- 5 スレーブノード
- それぞれ 64 GB RAM (50 GB 使用可能)
- 各24コア(19コア使用可能)
- 糸の設定
- すべてのコンテナのメモリ (1 つのホスト): 50 GB
- コンテナの最小サイズ = 2 GB
- 最大コンテナー サイズ = 50 GB
- 仮想コア = 19
- 最小 #vcores/コンテナー = 1
- 最大 #vcores/コンテナー = 19
コマンド YARN を使用して spark アプリケーションを実行するspark-submit --num-executors 30 --executor-cores 3 --executor-memory 7g --driver-cores 1 --driver-memory 1800m ...
と、次の設定で 31 個のコンテナー (各エグゼキューター プロセスに 1 つ + ドライバー プロセスに 1 つ) が作成されます。
- 正解: 1 コアと ~1800 MB の RAM を備えたマスター コンテナー
- 正解: それぞれ ~7 GB の RAM を持つ 30 個のスレーブ コンテナー
- BUT INCORRECT : YARN ResourceManager UI によると、各スレーブ コンテナーは 3 コアではなく1 コアでのみ実行されます (91 = 30 * 3 + 1 ではなく、使用中の 95 コアのうち 31 コアのみが表示されます)。以下のスクリーンショットを参照してください。
spark-submit
ここでの私の質問:パラメータ--executor-cores 3
が効果がないのはなぜですか?