私が知る限り、静的変数とメソッドは異なるセッション間で共有されています。この種の動作は、異なるセッションが静的なvarを読み込んでいるときや静的な変数を同時に呼び出しているときなど、パフォーマンスが低下する可能性があります。Tomcat:セッション間で静的変数とメソッドを共有します。
1
A
答えて
0
他のスレッドがその変数に書き込んでいない限り、同じ変数を読み込んだり同じメソッドを同時に呼び出している複数のスレッドには、通常はパフォーマンス上のペナルティはありません。
スレッドが別のスレッドが読み取っている変数を書き込むことができる場合、注意深く処理する必要のある並行性制御の問題があります。
ただし、1つのスレッドが書き込む変数が他のスレッドが読み取る変数にメモリ内で隣接する場合、特定の種類のハードウェアで例外が発生することがあります。この場合、RAMから読み出されてキャッシュされるメモリの単位である同じ「キャッシュライン」内に存在する可能性があります。その場合、ハードウェアは読者とライターの間に競合が存在する可能性があります。同じ場所にアクセスしていません。
「googlable term for this」は「false sharing」です。
0
単に「セッション間の静的変数を使用する」には本質的にパフォーマンスの影響はありません。しかし、代わりにあなたが見る必要があるいとこの懸念があります。
複数のユーザーセッションから読み書きしているフィールドには同時にアクセスします。これは、オブジェクトをスレッドセーフでにする必要があることを意味します(これは、これらの静的フィールドに書き込む場合に必要になります)。 このは、パフォーマンスに直接影響する可能性のあるものです。
関連する問題
- 1. Android静的変数と共有設定
- 2. 複数のWKWebView間でセッションを共有
- 3. 2つのWebアプリケーション間でセッションを共有:tomcat
- 4. 静的メソッドと静的変数のjava
- 5. クラスとメソッドの間で変数を共有する
- 6. クラスとメソッドの間で変数を共有
- 7. 静的メソッドと変数
- 8. スレッド間で共有される静的メソッド内でのみ使用される変数は何故ですか?
- 9. サブドメイン間でPHPのセッション変数を共有
- 10. Tomcatインスタンス間でセッションを共有する(スティッキーセッションを使用しない)
- 11. サブクラスはC++で親クラスの静的変数を共有していますか?
- 12. 静的クラスはAppDomain間で共有されていますか?
- 13. ASP.NET WebApiセッションと静的変数
- 14. グローバル静的変数または共有設定android
- 15. 静的ライブラリを共有ライブラリに変換しますか?
- 16. Ruby:共通の変数とメソッドをスクリプトセットで共有する
- 17. MinGWとの静的/動的/共有リンク
- 18. ノードアプリケーション間でRedisセッションを共有する
- 19. 静的ライブラリをテストするか、プロジェクト間で共有する
- 20. ノードアプリケーション間の共有セッション
- 21. WCFクライアントアプリケーション間で静的なDLLを共有する
- 22. Tomcatのwarファイル間でJavaクラスを共有しますか?
- 23. 共有オブジェクト内の静的ライブラリの静的関数
- 24. RSpec変数を共有コンテキスト間で共有する方法は?
- 25. コンポーネント間で変数を共有する
- 26. プロセス間で変数を共有する
- 27. プロセス間で変数を共有する -
- 28. ノード/エクスプレス:ブラウザとサーバー間のセッション共有
- 29. RailsとSpring MVC間のセッションの共有
- 30. sbtでのテスト実行間で静的なデータを共有