【问题标题】:VB.NET 'With' statement performance?VB.NET 'With' 语句的性能?
【发布时间】:2010-01-13 00:49:35
【问题描述】:

在 vb.net 中使用 'With' 关键字而不是一遍又一遍地重用实例名称会产生什么性能后果?

【问题讨论】:

    标签: vb.net performance with-statement


    【解决方案1】:

    假设您将它与局部变量引用进行比较,则没有任何区别;两者都会发出完全相同的 IL。 (至少在发布模式下)

    但是,如果您将它与重复调用属性或索引器进行比较,With 会快一点,如果您将它与重复调用方法进行比较,它可能会快得多。 (With 关键字将创建一个局部变量并将其分配给您 With'd 的对象,因此该方法只会被调用一次,而不是在每一行上)

    【讨论】:

    • +1。尽管我会说,如果您已经测量并发现使用 With 的特定代码块中存在严重的性能瓶颈,您应该只担心这些性能差异。 “过早的微优化是万恶之源”
    • @MarkJ 我说的是一个大批量操作(1000000+)个条目
    • 我不知道您可以将With 与方法一起使用。酷!
    【解决方案2】:

    没有运行时性能成本。它只是让你的代码看起来更漂亮的“语法糖”。

    【讨论】:

      【解决方案3】:
      sub xyz (ByRef param as MyObj)
      
      'Local ref, same as with
      
      dim o2 as YourObject = param.YourObject
      
      o2.callSomething()
      
      
      'Bad performance
      
      param.YourObject.callSomething()
      
      end sub
      

      【讨论】:

      • 还请对您的回答提供一些解释,说明它是如何回答问题的。
      猜你喜欢
      • 2015-04-23
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多