Intel VTっていう仮想化支援技術があります。昔から仮想マシンを使っていたんで興味はあったんですが、性能差がどれくらいでるんだろうと気になっていました。しかし調べてみるとVTが実装されたコアはNehalemからで自分とこの現状のメインマシンCore2あたりではダメな模様。(Corei5のノートPCならあるが・・・)
ぐぐってみたらベンチマークのせて比較している人を発見。それもベンチマークソフトをホストOSの、VT有効なゲストOS、VT無効のゲストOSの3種で比較してらっしゃる。結論だけいうと、100%、101%、50%な感じ。VT有効なゲストOSの方が若干速いのはどうよというところもありますが、数値的には誤差レベルです。これでVT有効、無効の明確な差がわかります。(メインマシンの石変えたいな・・・・)
ところでこのVT技術って、4種類に分類されていてIOの仮想化支援なんてものあるそうですね。ちょっと気になります。
2012年6月23日土曜日
2012年6月21日木曜日
ログ関数(可変長引数)
ちょいと汎用のログ関数(ログするデータを可変長にする)が欲しくなったので作ってみた。昔からよくやる手が、文字列バッファにsprintfでログ内容をその場その場で作成し、文字列としてロギングする方法だけど、どうみてもこれスマートじゃないよね。というわけで可変長引数を使ってみた。
簡単な実装例を示す。
FILE* glb::logFile;
void glb::logOpen( const char* filename )
{
logFile = fopen( filename, "w" );
}
void glb::logClose( )
{
if ( logFile != NULL )
fclose( logFile );
}
void glb::logging( const char* format, ... )
{
va_list argp;
va_start( argp, format );
vfprintf( logFile, format, argp );
fprintf( logFile, "\n" );
va_end( argp );
}
printfみたいにformatを入れないといけないのが難点だけど、そのおかげで文字データだろうが、整数だろうが浮動小数点だろうが自由にログできる。(format使うおかげで、csv形式にも簡単になるしね)
glb::logOpen( "log.log" );
glb::logging( "%s", "1st" );
glb::logging( " %s, %s", "2nd", "3rd" );
glb::logging( "%f", 3.0 );
glb::logClose( );
簡単な実装例を示す。
FILE* glb::logFile;
void glb::logOpen( const char* filename )
{
logFile = fopen( filename, "w" );
}
void glb::logClose( )
{
if ( logFile != NULL )
fclose( logFile );
}
void glb::logging( const char* format, ... )
{
va_list argp;
va_start( argp, format );
vfprintf( logFile, format, argp );
fprintf( logFile, "\n" );
va_end( argp );
}
printfみたいにformatを入れないといけないのが難点だけど、そのおかげで文字データだろうが、整数だろうが浮動小数点だろうが自由にログできる。(format使うおかげで、csv形式にも簡単になるしね)
glb::logOpen( "log.log" );
glb::logging( "%s", "1st" );
glb::logging( " %s, %s", "2nd", "3rd" );
glb::logging( "%f", 3.0 );
glb::logClose( );
登録:
投稿 (Atom)