g++ でコンパイルされた Linux で C++ アプリをプロファイリングしています。
gprof の出力では、次の重要な使用統計を取得しています。
global constructors keyed to _ZN4CGps14ms_OutputNamesE
ここで、_ZN4CGps14ms_OutputNamesE は、クラスの 1 つの静的メンバーの修飾名です。これは std::strings の配列です:
static std::string ms_OutputNames[MAXOUTPUTS];
これがアプリの開始時に一度も構築されていないことに少し驚いています。ある種のガード変数または最初の使用チェックが行われていますか? これを最適化するにはどうすればよいですか?