2004-10-01から1ヶ月間の記事一覧
500,000,000回まわしてこの程度の処理時間ですから、どれも高速だと思う。差なんてないようなものではなかろうか。むしろ、Singleton(=グローバル変数)なんて殆ど使わなくて済むような設計を心がけるべきで、完全同期バージョンのSingletonを使ってパフォー…
(1) SynchronizedSingleton: 完全同期型Singleton 特に説明は不要でしょう。non-PODでstaticなオブジェクトを使用するのは好きじゃありませんが(メンバ変数m)、今回は目を瞑ります。 template<typename T> class SynchronizedSingleton : private boost::noncopyable { p</typename>…
結果は次の通り。 $ ./a.out DCLSingleton: 0.27 [s] GccTSDSingleton: 0.62 [s] OnceSingleton: 17.08 [s] TSDSingleton: 22.83 [s] SynchronizedSingleton: 52.95 [s] 手法処理時間(1/Sync比)処理時間(DCL比) DCLSingleton196.11.0 GccTSDSingleton85.42.3…
2chのマルチスレッドスレッドで興味深い議論があった。見ていただければわかるが、「C++でdouble checked locking(DCL)は安全か」という話題を、CPU毎に検討している。各CPUのmemory modelの話に立ち入った、楽しい議論だ。特に、リンクされている Double-Ch…