我需要debugging生产服务器上的一些问题,并试图决定是否使用strace或log4cxx日志库 ; 我之前需要知道的一个关键特征是两者哪一个对性能(主要是速度)影响较小?
对于strace ,我正在计划一个类似下面的命令行:
strace -p PID -tt -f -e SOME,SELECTED,SYSCALLS -o FILENAME # or maybe with "-ff" instead? which one would be faster?
对于log4cxx ,为了简单起见,我们可以假设我在每个要跟踪的系统调用之前调用日志logging函数。 假设版本为log4cxx-0.10.0,64位。
如果你所build议的是我自己的基准testing,那么我会很乐意帮你写出基准。
Strace使用一个适度昂贵的机制,而日志通常更轻量级。 但是,要注意的一点是DIY日志logging使用同步写入而不缓冲太多。 当日志logging完成时,这往往会使应用程序等待logging的每个操作。 一位同事曾经这样做,同时衡量业绩,并想知道为什么他的performance突然如此糟糕(;-))
–dave