我需要调试一些问题生产服务器我正在决定是否使用斯特拉斯或者log4cxx 日志库;我需要事先知道的一个关键特征是,两者中哪一个会对性能(主要是速度)的影响较小?
为了斯特拉斯,我计划使用大致如下的命令行:
strace -p PID -tt -f -e SOME,SELECTED,SYSCALLS -o FILENAME
# or maybe with "-ff" instead? which one would be faster?
为了log4cxx,为了简单起见,我们可以假设我在执行每个我想要跟踪的系统调用之前调用日志记录函数。假设版本为 log4cxx-0.10.0,64 位。
如果您建议我自己对此进行基准测试,那么我将非常感激您对如何编写基准测试的帮助。
答案1
Strace 使用一种成本适中的机制,而日志记录通常更轻量。不过,需要注意的一点是 DIY 日志记录使用同步写入,没有太多缓冲。这往往会使应用程序等待记录完成每个记录操作。一位同事在测量性能时就遇到过这种情况,他想知道为什么他的性能突然变得如此糟糕 (;-))
--戴夫