write_log函数就是打一大串话,他写的目的是这样的
write_log(“程序运行到了这里");他说他这样写是为了跟踪程序,如果出了错,他好查找,你们觉得这样好吗?

解决方案 »

  1.   

    调试过程中如果只是为了跟踪程序的走向,可以用TRACE,release版就不会有了,不会影响程序的性能
      

  2.   

    建议用TRACE,有个tracewin的东西比较好用
      

  3.   

    TRACE在调试实时系统时并不好,所以log自有其存在道理。而且如果不是performance critical的系统,写log并不影响太大。
      

  4.   

    不知道楼主说得是什么时候的调试
    如果是开发时候的调试,当然可以
    如果是客户在使用时如果发现了错误,以便于开发人员找到错误的地方的话,甚好当然,不知道楼主说的是在什么地方写的这些语句,是在try里边? 还是在catch里边呢?这两种方法当然有其不同之处不过,就算了,性能的影响应该不会太大。但不知道楼主的程序是什么程序,如果是大型游戏或者电信里边的实施程序,则要考虑一下了
      

  5.   

    一、最好能用类似于TRACE宏的方法,在发布版中自动将这些语句去掉;二、至于性能,只要你那个系统不是非常关键(比方说每秒几千访问量的网站),一般影响不大,可以不管它;三、最后,write_log函数的输出是一个文本文件吧?那么记住,一定要想办法限制文本文件的大小。随着系统的运行,log越来越多,当达到上百M的时候,对write_log对性能的影响就很大了。
      

  6.   

    write_log是我们的自己写的函数,他当然不时仅仅在catch中使用,他在程序的肯定会执行的地方也用这个函数,release的时候不会去掉,或者基本不去掉,不是trace函数
      

  7.   

    如果实时性高又面对大量并发,建议还是去掉write_log,可以定义一个常量(可由某界面来控制这个常量),当常量为True写,否则不写,这样对调试和运行都有好处。
      

  8.   

    TRACE只在MFC程序里有用,,,
      

  9.   

    对于需要长时间运行的程序write_log是必须的,不然根本无法调试
      

  10.   

    #ifndef _DEBUG
    #define write_log(wl) (void)(0)
    #endif
      

  11.   

    TRACE对试运行的release版程序没用,这个阶段log是绝对必要的,
    除非你的程序就是hello world那么简单,就算是为避免IO操作的开销,
    也可以定义log级别,搞成可配置的,检查这个级别的if判断不会有什么性能损失的。
      

  12.   

    调试通讯的时候这种方法挺好,不影响程序执行,执行完之后再看log文件。