【问题标题】:General performance optimization一般性能优化
【发布时间】:2013-12-03 21:57:02
【问题描述】:

我正在编写一个函数,该函数将一组值返回给调用者。假设数组是:

$arr['keyN'] = $valueN;

如果任何 '$keyN' 没有值;它的值输入为零。

我的问题纯粹是从性能的角度来看:给键值零或根本不给它任何值并让调用者测试它的存在是否更好 if(isset($arr[$keyN ]))....然后执行代码?

我问这个的原因是因为给数组键一个零值会消耗主内存,测试它的存在会消耗 CPU 周期。那么是占用一些内存空间(零值)还是不为键分配任何东西并让代码测试它的存在会更好吗?

【问题讨论】:

  • 不是C语言吧?
  • 它可以是任何语言....但插图是用 PHP 编写的
  • 与性能无关,但是...持续检查是否存在 VALID 值是多余的,并且可能会导致相当多的代码膨胀(并且容易出错?),具体取决于您的用例。因此,我建议为数组中的每个元素设置一个默认值。
  • 这听起来像是过早的优化。空间和时间优化之间的困境是正确的,但答案是特定于您的应用程序:您希望它更快,还是消耗更少的资源?恕我直言,您应该“优化”可读性和可维护性。

标签: php arrays optimization


【解决方案1】:

PHP 是一种服务器端语言;因此,
客户端系统不会受此影响,除非您将答案发送到客户端浏览器;并且在这种诅咒传输数据的情况下,传递NULL 值应该更少蚂蚁更好...
而在服务器端,php.ini 中有一些行设置了允许的数据传输的大小和执行时间。
结果,如果要将结果发送给客户端,请通过提高价值观...
查看此链接了解对您有用的其他信息 Memory optimization in php array

【讨论】:

    【解决方案2】:

    我认为最好不要分配任何内容,因此该值将为 NULL,这意味着“符号表”中的该变量没有存储任何值。 PHP 以动态方式分配内存,不像在 C 中那样,你会有一个内存“块”,即使它是无用的。

    这里我给你一个阅读的起始链接:http://www.php.net/manual/pt_BR/internals2.variables.intro.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 2016-05-14
      • 2011-10-17
      • 2014-01-08
      相关资源
      最近更新 更多