これはより一般的な質問です。ロギング関連の関数でLINEとFILEを使用すると、パフォーマンスが低下することはありますか? 私はこのようにそれらを排他的に使用しています:
C++で
Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);
私のプログラムは非常に遅く実行されています..これらを削除することでパフォーマンスが大幅に向上するかどうかを確認したかっただけです。
ありがとう
これはより一般的な質問です。ロギング関連の関数でLINEとFILEを使用すると、パフォーマンスが低下することはありますか? 私はこのようにそれらを排他的に使用しています:
C++で
Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);
私のプログラムは非常に遅く実行されています..これらを削除することでパフォーマンスが大幅に向上するかどうかを確認したかっただけです。
ありがとう
いいえ、まったくありません。それらは、何らかの定数に展開されるマクロです。
__LINE__
10 進整数定数としての行番号と__FILE__
C 文字列定数に展開されます。
いいえ。これらはプリプロセッサによって展開され、次のようなコードで使用される場合:
printf("This is " __FILE__ ".\n");
次に、コンパイラは文字列リテラルを連結しますが、パフォーマンスへの影響はありません。
一方、次のような追加の引数として渡されている場合:
printf("This is %s.\n", __FILE__);
次に、パフォーマンスへの影響がある可能性がありますが、次のようなものと同じ影響しかありません。
printf("This is %s.\n", "an answer on Stack Overflow");