0

これはより一般的な質問です。ロギング関連の関数でLINEFILEを使用すると、パフォーマンスが低下することはありますか? 私はこのようにそれらを排他的に使用しています:

C++で

Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);

私のプログラムは非常に遅く実行されています..これらを削除することでパフォーマンスが大幅に向上するかどうかを確認したかっただけです。

ありがとう

4

2 に答える 2

9

いいえ、まったくありません。それらは、何らかの定数に展開されるマクロです。

__LINE__10 進整数定数としての行番号と__FILE__C 文字列定数に展開されます。

于 2013-05-29T04:37:01.163 に答える
8

いいえ。これらはプリプロセッサによって展開され、次のようなコードで使用される場合:

printf("This is " __FILE__ ".\n");

次に、コンパイラは文字列リテラルを連結しますが、パフォーマンスへの影響はありません。

一方、次のような追加の引数として渡されている場合:

printf("This is %s.\n", __FILE__);

次に、パフォーマンスへの影響がある可能性がありますが、次のようなものと同じ影響しかありません。

printf("This is %s.\n", "an answer on Stack Overflow");
于 2013-05-29T04:36:49.000 に答える