Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance CFMX 8中是否仍有许多旧的ColdFusion性能警告?_Performance_Coldfusion - Fatal编程技术网

Performance CFMX 8中是否仍有许多旧的ColdFusion性能警告?

Performance CFMX 8中是否仍有许多旧的ColdFusion性能警告?,performance,coldfusion,Performance,Coldfusion,我有一个旧的标准文档,它经过了多次迭代,其根源可以追溯到ColdFusion 5天。它包含了一些警告,主要是关于性能的,我不太确定这些警告是否仍然有效 这些是否仍适用于ColdFusion MX 8?他们的表现真的有那么大的不同吗 比较字符串时,使用compare()或compareNoCase()而不是不在 除非没有其他方法编写代码,否则不要使用evaluate() 不要使用iif() 始终使用struct.key或struct[key]而不是structFind(struct,key) 不

我有一个旧的标准文档,它经过了多次迭代,其根源可以追溯到ColdFusion 5天。它包含了一些警告,主要是关于性能的,我不太确定这些警告是否仍然有效

这些是否仍适用于ColdFusion MX 8?他们的表现真的有那么大的不同吗

  • 比较字符串时,使用
    compare()
    compareNoCase()
    而不是
    不在
  • 除非没有其他方法编写代码,否则不要使用
    evaluate()
  • 不要使用
    iif()
  • 始终使用
    struct.key
    struct[key]
    而不是
    structFind(struct,key)
  • 不要使用
    incrementValue()
      • Compare()
        /
        CompareNoCase()
        :在Java中,不敏感地比较大小写也比较昂贵。我认为这仍然是正确的
      • 不要使用
        evaluate()
        :绝对-除非没有办法。大多数时候,都是这样
      • 不要使用
        Iif()
        :关于这一点我不能说太多。反正我也不使用它,因为它附带的整个
        DE()
        东西太糟糕了
      • struct.key
        over
        StructFind(struct,key)
        :我怀疑两者在内部都使用相同的Java方法来获取结构项
        StructFind()
        只是堆栈上的又一个函数调用。我从未使用过它,因为我不知道它会带来什么好处。我想这只是为了向后兼容
      • IncrementValue()
        :我从未用过那个。我的意思是,它是16个字符,甚至不增加变量。这是它存在的唯一借口
      IMHO表示,一些担忧落在“过早优化”的角落。撇开个人偏好或编码风格不谈,我只会开始关注让应用程序陷入困境的沉重内部循环中的一些微妙之处

      例如,如果不需要不区分大小写的字符串比较,那么使用
      CompareNoCase()
      是没有意义的。但我认为99.9%的时候,实际的性能差异可以忽略不计。当然,您可以编写一个循环,对不同操作进行100000次迭代,您会发现它们的执行方式不同。但在现实世界中,这些学术差异很少产生任何可测量的影响。

      • Compare()
        /
        CompareNoCase()
        :在Java中,不敏感地比较大小写也比较昂贵。我认为这仍然是正确的
      • 不要使用
        evaluate()
        :绝对-除非没有办法。大多数时候,都是这样
      • 不要使用
        Iif()
        :关于这一点我不能说太多。反正我也不使用它,因为它附带的整个
        DE()
        东西太糟糕了
      • struct.key
        over
        StructFind(struct,key)
        :我怀疑两者在内部都使用相同的Java方法来获取结构项
        StructFind()
        只是堆栈上的又一个函数调用。我从未使用过它,因为我不知道它会带来什么好处。我想这只是为了向后兼容
      • IncrementValue()
        :我从未用过那个。我的意思是,它是16个字符,甚至不增加变量。这是它存在的唯一借口
      IMHO表示,一些担忧落在“过早优化”的角落。撇开个人偏好或编码风格不谈,我只会开始关注让应用程序陷入困境的沉重内部循环中的一些微妙之处


      例如,如果不需要不区分大小写的字符串比较,那么使用
      CompareNoCase()
      是没有意义的。但我认为99.9%的时候,实际的性能差异可以忽略不计。当然,您可以编写一个循环,对不同操作进行100000次迭代,您会发现它们的执行方式不同。但在现实世界中,这些学术差异很少产生任何可测量的影响。

      我同意托马拉克关于过早优化的想法。比较不如“eq”可读


      尽管如此,Adobe开发者中心上有一篇关于ColdFusion性能的优秀文章:

      我同意Tomalak关于过早优化的想法。比较不如“eq”可读


      尽管如此,Adobe开发者中心上有一篇关于ColdFusion性能的优秀文章:

      ColdFusion MX 8在所有客户中都比MX 7快好几倍。当它面世时,我读到了很多观点,认为仅仅为了提高性能而升级而不改变一行代码是非常值得的。。。这是值得的。通常,随着处理能力、内存可用性的提高,您可以用较少优化的代码做更多的事情

      这是否意味着我们应该停止关心,写任何东西?不可能。如果我们走的捷径最多,我们就必须在那里最大限度地发展系统

      在解决方案的充分工程化和不过度工程化之间找到一条界线是一个很好的平衡。Knuth在那里引用了一句话,我相信这句话是说“过早的优化是万恶之源”

      对我来说,我试图将其建立在以下基础上:

      • 要用多少,
      • 在我的预期用户群中,这将是多么昂贵
      • 它对一切事物的重要性/中心性
      • 我多久会回到代码中,将其扩展到其他领域
      这些类型的想法越多地存在于“可能或者以某种方式我会”,我就越关注它。如果需要可读性和较小的性能影响,这是实现公司可持续性的更好方法