这是一个更普遍的问题。在记录相关功能中使用LINE和FILE是否有任何性能损失?我一直像这样专门使用它们:
在 C++ 中
Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);
而且我的程序运行速度非常慢..我只是想确认删除这些是否会给我带来任何显着的性能提升,因为从所有地方删除它们是一项艰巨的任务。
谢谢
这是一个更普遍的问题。在记录相关功能中使用LINE和FILE是否有任何性能损失?我一直像这样专门使用它们:
在 C++ 中
Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);
而且我的程序运行速度非常慢..我只是想确认删除这些是否会给我带来任何显着的性能提升,因为从所有地方删除它们是一项艰巨的任务。
谢谢
一点都不。它们是扩展为某些常量的宏。
__LINE__
扩展为十进制整数常量的行号和__FILE__
C 字符串常量。
不,它们由预处理器扩展,如果在这样的代码中使用:
printf("This is " __FILE__ ".\n");
然后编译器将连接字符串文字,不会对性能产生影响。
另一方面,如果它们作为额外的参数传递,如下所示:
printf("This is %s.\n", __FILE__);
然后可能会对性能产生影响,但只会产生与以下内容相同的影响:
printf("This is %s.\n", "an answer on Stack Overflow");