这更像是一个普遍的问题.在记录相关函数中使用LINE和FILE是否有任何性能损失?我一直这样使用它们:
在c ++中
Logger::debug("Incoming msg from rs232,__LINE__, __FILE__);
Run Code Online (Sandbox Code Playgroud)
我的程序运行速度非常慢..我只是想确认是否删除它们会给我带来任何显着的性能提升,因为从各地移除它们是一项重大任务.
谢谢
不会.它们由预处理器扩展,如果在这样的代码中使用:
printf("This is " __FILE__ ".\n");
Run Code Online (Sandbox Code Playgroud)
然后编译器将连接字符串文字,不会对性能产生影响.
另一方面,如果它们被作为额外的参数传递:
printf("This is %s.\n", __FILE__);
Run Code Online (Sandbox Code Playgroud)
然后可能会产生性能影响,但影响与此类似:
printf("This is %s.\n", "an answer on Stack Overflow");
Run Code Online (Sandbox Code Playgroud)