2004-10-01から1ヶ月間の記事一覧

Singleton速度比較 (4) 感想

C++

500,000,000回まわしてこの程度の処理時間ですから、どれも高速だと思う。差なんてないようなものではなかろうか。むしろ、Singleton(=グローバル変数)なんて殆ど使わなくて済むような設計を心がけるべきで、完全同期バージョンのSingletonを使ってパフォー…

Singleton速度比較 (3) ソースコード

C++

(1) SynchronizedSingleton: 完全同期型Singleton 特に説明は不要でしょう。non-PODでstaticなオブジェクトを使用するのは好きじゃありませんが(メンバ変数m)、今回は目を瞑ります。 template<typename T> class SynchronizedSingleton : private boost::noncopyable { p</typename>…

Singleton速度比較 (2) 結果

C++

結果は次の通り。 $ ./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…

Singleton速度比較 (1)

C++

2chのマルチスレッドスレッドで興味深い議論があった。見ていただければわかるが、「C++でdouble checked locking(DCL)は安全か」という話題を、CPU毎に検討している。各CPUのmemory modelの話に立ち入った、楽しい議論だ。特に、リンクされている Double-Ch…