問題タブ [lazy-initialization]

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.

0 投票する
1 に答える
1067 参照

rest - JAX-RS:Restful 呼び出しで xml 出力を選択的に選択するにはどうすればよいですか?

安らかなインターフェースを使用してすべての製品をリストしようとしているとしましょう。

製品でfind.Allを呼び出そうとすると、ProductUsersもフェッチしようとして例外がスローされます

製品ユーザーを残りの xml 出力に含めたくありません。xml に含まれるものを選択的に選択するにはどうすればよいですか?

REST-Easy、JBoss AS7、JPA を実装として Hibernate と共に使用しています。私の EJB 3.1 メソッドは、Restful サービスとして公開されています。

あなたの助けに感謝!

0 投票する
0 に答える
549 参照

c++ - DLL 間で共有される once_flag を持つ call_once

クラスコンストラクターの最初の使用時に、クラス内の静的データの遅延初期化のために std::call_once() および std::once_flag を使用するクラスがあります。したがって、once_flag はクラスの静的メンバーです。私の問題は、メイン アプリケーションと、アプリケーションが異なる時間にロードおよびアンロードするさまざまな DLL の間でこれを共有する最善の方法がわからないことです。

私が持っていた唯一のアイデアはstd::once_flag *GetOnceFlag()、DLL のクラスが GetOnceFlag() で call_once() を使用するのに対し、静的な once_flag のアドレスを返す EXE のバージョンのクラスをエクスポートすることでした:MyClass::Myclass(void) { call_once(*GetOnceFlag(), &MyClass::Init, this); }このアプローチは機能しますか?

欠点は、ctor が GetOnceFlag() を呼び出すたびに、軽量の ctor には非効率的であることです (私の場合、call_once() を呼び出すだけです)。しかし、ポインターをそのままキャッシュすることによって暗示される競合MyClass::Myclass(void) { if (!_pflag) _pflag = GetOnceFlag(); call_once(*_pflag, &MyClass::Init, this); }が問題であるかどうかはわかりません (ポインターの書き込みは、関心のあるすべてのプラットフォームでアトミックであるため、GetOnceFlag() が同時に呼び出される場合は、そうすべきだと思いますわかりましたが、完全には確信が持てません)。

コメントとより良い解決策を歓迎します。

編集: 共有クラスは、他のユーザーが使用する別の DLL に配置できることはわかっていますが、MSVC が行うプログラム全体の最適化/リンク時のコード生成には影響しませんか? /GL および /LTCG のドキュメントに記載されているモジュール間の最適化は、リンクされている個々のオブジェクトと静的ライブラリのみであり、DLL の境界を越えて発生することはないと想定しています。

0 投票する
0 に答える
537 参照

.net - .net DLL のプリロード - GAC、NGEN、LoadAssembly、および PrepareMethod

アプリでフォームを表示するための読み込み時間を短縮したいと考えています。ユーザーが必要とする前に、ワーカー スレッドで DLL (ほとんどの場合、大量の DevExpress DLL) をロードする十分な時間があります。ここや MSDN などでいくつかの投稿を読みましたが、いくつか質問があります。

  1. ほとんどの DLL は GAC にあります。NGEN は、インストール時または初回使用時にこれらの DLL で実行されると思います (よくわかりません)。あれは正しいですか?その場合、NGEN を呼び出す必要はありません。
  2. GAC にない DLL が 2 つあります。WIX スクリプトで NGEN を呼び出す方法の例はありますか?
  3. まだロードする必要があります。アセンブリをロードするか、PrepareMethodを使用する方が良い方法ですか?
  4. 私たちは Office アドインであり (したがって、ワーカー スレッドでロードするのに多くの時間がかかります)、Office の起動時にロードされる DLL (GAC ではない) が 1 つあります。そのメイン DLL の読み込みを高速化するためにできることは、NGEN だけですか?
  5. また、Office の起動時に読み込まれる 1 つの管理されていない C++ (shim) DLL もあります。それをスピードアップするために何かできることはありますか?

ありがとう - デイブ

0 投票する
1 に答える
113 参照

java - LazyInitializationExceptions を一時的に強制する

伝統的に、私たちはs を避けよ LazyInitializationExceptionうとします。ただし、一時的に投げられるようにする必要があります。これは私がやろうとしていることの疑似コードです:

このmagicallySerializeDataCurrentlyInMemoryメソッドは、メモリ内データcustomerとそれに関連するエンティティのシリアル化を再帰的に試行しLazyInitializationException、途中で s を吸収します。

試み #1: session.disconnect/session.reconnect

この試みでは、次のパターンを使用しました。

残念ながら、それは s をスローしませんでしたLazyInitializationException

試み #2: session.close/session.reconnect

この試みでは、次のパターンを使用しました。

残念ながら、これによりsessionafter が役に立たなくなりましたsession.reconnect(connection)

一時的に s を強制するにはどうすればよいLazyInitializationExceptionですか?

0 投票する
2 に答える
10135 参照

c# - C#のレイジーディクショナリプロパティ

辞書であるプロパティを持つクラスがあります:

このプロパティをレイジー初期化を使用するように切り替えたいと思います。私は次のことを試しました:

名前と名前のタイプが異なるため、これはもちろんエラーです。しかし、私の一生の間、これを正しく指定する方法を理解することはできません。私が本当に望んでいるのは、名前にアクセスするまでNameをnullのままにして、最初の読み取りまたは書き込みで作成することです。

0 投票する
0 に答える
767 参照

hibernate - jsf+hibernate: 多対多の関係を保存する

Hibernate 3.2.5 と JSF 2.1 を使用しています。

テーブル accounts、accounts_opportunities、および機会、つまり多対多の関係が設定されています。

すべてのテーブル、つまりモデルをマップしました。

アカウントを保存するために、次のコードを使用しています。

Accounts オブジェクトを保存すると、次のエラーが表示されます。

私は JSF と Hibernate が初めてで、なぜ Hibernate がオブジェクトを保存しないのか理解できません!

アップデート:

Accounts モデルを次の注釈で更新しました。

データはまだデータベースに保存されていません。セッションが閉じられたなどのエラーが発生するようになりました。

0 投票する
2 に答える
447 参照

objective-c - +(void)initializeメソッド内のalloc-initオブジェクトは、それらを複数回再利用します

NSDateFormatterオブジェクト(特定の目的のためにカスタマイズされたもの)を複数回使用しています。私はobjcの専門家ではないので、それに対処するための3つの異なるアプローチを考え出しました。

最初のものでは、NSDateFormatterカテゴリを作成し、そこでコードをカスタマイズしました。これは一般的なアプローチですが、そのようなオブジェクトを作成するたびに、これはメインの自動解放プールに配置されます。この動作は、非ARCコードとARCコードの両方に有効だと思います。

代わりに、2番目の方法では、メソッドをオーバーライドして、+(void)initializeそこにカスタマイズコードを配置しました。ここに簡単な例があります:

最後に、次のようなプロパティを介した遅延読み込みのインスタンス化を使用して、3番目のアプローチを設定しました。

そうは言っても、オブジェクトを複数回処理するのにどのアプローチが最適で+(void)initialize、そのように使用するのが正しいかを知りたいと思います。

前もって感謝します。

0 投票する
2 に答える
1191 参照

objective-c - Objective-Cに関連する便利な初期化子とは何ですか?

私は約8か月前にプログラミングを学び始め、C、OOPから始め、現在はiOSに移行しています。これが私の目標です。ほとんどの部分ですべてが非常にスムーズに進んでおり、xcodeで小さなアプリケーションをプログラミングすることから練習を始めました。時々私を失望させるのは、便利な初期化子のようなほんの少しの用語です。誰かが私のためにこの用語を定義して、その使用法の簡単な例を教えてもらえますか?割り当てと初期化の概念は理解していますが、初期化子と便利な初期化子を区別できません。私はオンラインで調べましたが、あまり運がありません。

どんな助けでもありがたいです、ありがとう

0 投票する
2 に答える
409 参照

python - 新しいアプリインスタンスの高速起動を確実にするためにwebapp2にモデルとハンドラーをインポートする方法

Google App Engineのwebapp2アプリをできるだけ早く起動(新しいアプリインスタンスを作成)したい。私はどのような明らかな減速に注意する必要があるのか​​疑問に思っていました(私は知っています..時期尚早の最適化ですが、私がそれを助けることができれば、最後に大規模なリファクタリングをしたくありません)

私はこれに似たフォルダ階層を持っています:

main.pyで、ルーターを使用してアプリインスタンスを作成します(ルーターはroutes.pyからインポートされます)。ルート.pyはすべてのハンドラーをインポートします(各ルートにハンドラーを割り当てます)。すべてのハンドラーは、ほぼすべてのデータモデルをインポートします。これは、私のアプリが新しいアプリインスタンスを作成するのに非常に時間がかかることを意味しますか?

プロジェクトの終わりまでに、約100個のハンドラーと30個のデータモデルがあると予想していますが、それらの多くはめったに使用されません。

データモデルをインポートするには(some_handlers.py内から)

次のだけで十分に高速になります。

from root_folder.data_model_folder.more_ndb_models import special_model

構成/レジストリの使用を検討する必要がありますか?