问候!!!
我在使用gcc版本4.4.4编译的CentOS Linux中运行了几个c ap, 在ssh连接中使用putty.exe连接到服务器, THREADLIB = POSIX,因为我的ap使用了很多线程,我需要观察很多 信息,使用大量的printf到屏幕上观看速度和信息, 虽然我不能专注于一个项目,但我使用“printScr”键盘并将其粘贴到MS Paint, 这很容易使用!!
虽然我在for循环中打印了太多信息,但我觉得速度很快 从那时起我的ap就慢了,如果我把那些printf带进for循环,它运行得更快。
我的问题是:“屏幕输出太多”真的会影响ap的速度吗? 如果它是真的,除了减少printf,我还能做些什么来不影响速度 太多了?
感谢您提供任何信息!!
答案 0 :(得分:1)
I / O很慢,终端往往是速度极慢的I / O设备。将输出重定向到文件可能会有很大帮助。为了说明考虑以下时间进行一百万次迭代:
否printf:0.008s
至/ dev / null:0.182s
提交:0.22s
到终端:2.513s
答案 1 :(得分:0)
登录屏幕会对性能产生影响。尝试最小化printf被调用的次数,并将输出写入文件。这应该有助于加速你的程序。
答案 2 :(得分:0)
打印到文件可能会获得一些速度(取决于您的系统配置),但最好的方法是减少您记录的信息量(请记住输入/输出操作总是被认为很慢)。在循环的每个循环中打印真的很重要吗?您不能计算,平均或以某种方式总结信息,然后在循环结束时打印该摘要吗?