none
用户重复执行操作,是不是先判断后,性能更高? RRS feed

  • 问题

  • 用户重复执行操作,是不是先判断后,性能更高?

    例如,有一个按钮,Button的事件:

    this.TextBox1.Text="ABCDEFG";


    用户不停地点击, 这是不是会重复地执行这个事件?我把它改成:


    if(this.TextBox1.Text!="ABCDEFG"){this.TextBox1.Text="ABCDEFG";}


    这样,先判断后再执行,是不是性能更高?

    不受2008的广告诱惑, 本人坚持使用VS 2005和SQL Server 2000.
    2009年2月15日 1:09

答案

  • 判断也需要性能开销的。
    Facing problems, think first, then search, finally ask.
    • 已标记为答案 dvdvip 2009年2月15日 7:08
    2009年2月15日 3:37
    版主
  • 你好!
         你加的那么判断使用了字符串比较,性能开销可能比赋值还要大些。 

    周雪峰
    • 已标记为答案 dvdvip 2009年2月15日 7:08
    2009年2月15日 4:36
    版主
  • 我觉得也不一定呢。要看具体的调用频繁度和具体对象的复杂度:)
    所以要综合考虑这个问题,如果是一个数据库操作的对象,先判断肯定会提高效率,如果是字符串,半斤八两吧。

    Facing problems, think first, then search, finally ask.
    • 已标记为答案 dvdvip 2009年2月15日 7:09
    2009年2月15日 7:06
    版主
  • 要看你的目标属性   是否会引发一系列操作

    比如说 如果你的目标属性是 form 的边框样式  一旦修改了就会引发 paint 那么就最好判断下


    梁赫群是榜样 赵正平是偶像 恩?还有个人么?
    • 已标记为答案 dvdvip 2009年2月16日 5:54
    2009年2月16日 3:09

全部回复

  • 判断也需要性能开销的。
    Facing problems, think first, then search, finally ask.
    • 已标记为答案 dvdvip 2009年2月15日 7:08
    2009年2月15日 3:37
    版主
  • 你好!
         你加的那么判断使用了字符串比较,性能开销可能比赋值还要大些。 

    周雪峰
    • 已标记为答案 dvdvip 2009年2月15日 7:08
    2009年2月15日 4:36
    版主
  • 我觉得也不一定呢。要看具体的调用频繁度和具体对象的复杂度:)
    所以要综合考虑这个问题,如果是一个数据库操作的对象,先判断肯定会提高效率,如果是字符串,半斤八两吧。

    Facing problems, think first, then search, finally ask.
    • 已标记为答案 dvdvip 2009年2月15日 7:09
    2009年2月15日 7:06
    版主
  • 要看你的目标属性   是否会引发一系列操作

    比如说 如果你的目标属性是 form 的边框样式  一旦修改了就会引发 paint 那么就最好判断下


    梁赫群是榜样 赵正平是偶像 恩?还有个人么?
    • 已标记为答案 dvdvip 2009年2月16日 5:54
    2009年2月16日 3:09