Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
PHP大数组性能?_Php_Arrays - Fatal编程技术网

PHP大数组性能?

PHP大数组性能?,php,arrays,Php,Arrays,我对阵列在大量元素情况下的性能有一个疑问。我有一个很大的阵列,目前大约有100个元素,我将继续添加到它的未来,所以它会越来越大,随着时间的推移。我的问题是,当这个阵列达到500多个元素或更多元素时,是否会对性能产生巨大影响 $pages=array( '<div class="article"><img src="image url here"></div>', '<div class="article"><img src="im

我对阵列在大量元素情况下的性能有一个疑问。我有一个很大的阵列,目前大约有100个元素,我将继续添加到它的未来,所以它会越来越大,随着时间的推移。我的问题是,当这个阵列达到500多个元素或更多元素时,是否会对性能产生巨大影响

  $pages=array(
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>',
  '<div class="article"><img src="image url here"></div>');
  }
$pages=数组(
'',
'',
'',
'',
'',
'',
'',
'');
}

定义一个包含500个项目的数组可能足够快。如果除了打印出数组的内容之外,您对数组没有做任何有趣的事情,那么您可能不必担心


如果你想知道这样的事情,就测量一下。

定义一个包含500个项目的数组可能足够快了。如果除了打印出数组的内容之外,您对数组没有做任何有趣的事情,那么您可能不必担心


如果你想知道这样的事情,就测量一下。

理论上,数组的大小没有限制。在您的情况下,我看不到任何重大性能影响。您唯一需要担心的是,根据分配给脚本的内存,它是否会导致内存问题(正如您所说的,阵列将增长)。这可以在php.ini配置中的
'memory\u limit'
中更改


对于大型阵列,性能还取决于一旦拥有大型阵列中的所有数据后将执行的操作。在最坏的情况下,像数组中的
这样的操作必须搜索整个数组。

理论上,数组的大小没有限制。在您的情况下,我看不到任何重大性能影响。您唯一需要担心的是,根据分配给脚本的内存,它是否会导致内存问题(正如您所说的,阵列将增长)。这可以在php.ini配置中的
'memory\u limit'
中更改


对于大型阵列,性能还取决于一旦拥有大型阵列中的所有数据后将执行的操作。在最坏的情况下,像_array中的
这样的操作必须搜索整个阵列。

500+不会对性能产生巨大影响。如果你的服务器有很好的RAM,你就不必担心,即使它达到10000-50000+左右

但你的担心在衡量能力方面是有道理的。尝试使用已知键索引数组,并始终尝试使用
isset[]
而不是执行
is\u数组
操作(如Joey所述)

即使这样做之后,如果您面临性能问题,也应该转到
memcache
。(如果您有一个已知的密钥数组,那么从普通数组到memcache将很容易)


希望这对你有帮助!谢谢。

500+不会对性能产生巨大影响。如果你的服务器有很好的RAM,你就不必担心,即使它达到10000-50000+左右

但你的担心在衡量能力方面是有道理的。尝试使用已知键索引数组,并始终尝试使用
isset[]
而不是执行
is\u数组
操作(如Joey所述)

即使这样做之后,如果您面临性能问题,也应该转到
memcache
。(如果您有一个已知的密钥数组,那么从普通数组到memcache将很容易)



希望这对你有帮助!谢谢。

我唯一能说的是为什么要保存数组中的所有HTML?我是说。[Class=“article”]和[src={URL}是数组中实际需要的全部内容?是的。我正在我的网站中创建一个分页,数组将存储HTML,在本例中,它将是div和img。它将完全像这样,但在PHP中。因此,如果使用1000多个元素,这对性能影响不大?对不起,我不知道分页是什么。我想说的是,我认为不需要在数组中存储多个重复的HTML div。它可能会在输出时用一个select case解决,并将HTML和数组细节一起输出。我不使用数据库。不确定这有什么关系。这是一个简单的select case或if(),您的数组将大大缩小。如果我理解你的代码和数组是正确的。我唯一能说的是为什么要保存数组中的所有HTML?我是说。[Class=“article”]和[src={URL}是数组中实际需要的全部内容?是的。我正在我的网站中创建一个分页,数组将存储HTML,在本例中,它将是div和img。它将完全像这样,但在PHP中。因此,如果使用1000多个元素,这对性能影响不大?对不起,我不知道分页是什么。我想说的是,我认为不需要在数组中存储多个重复的HTML div。它可能会在输出时用一个select case解决,并将HTML和数组细节一起输出。我不使用数据库。不确定这有什么关系。这是一个简单的select case或if(),您的数组将大大缩小。如果我理解你的代码和数组是正确的。我将使用数组创建分页。这将是完全一样的,但在PHP中,然后是的,你很好,在未来只是衡量。您可以轻松地创建一些包含数千项的伪数组,只需看看它从何处开始变慢。测量总是比提问好。正确测量这一点的最佳方法是什么?开始测量的简单方法是:在脚本之前调用
microtime(true)
,之后再次调用
microtime(true)
。如果从最后一个减去第一个,您就知道需要多长时间。或者,您可以使用各种浏览器的开发人员工具查看HTTP响应需要多长时间。我将使用数组创建分页。这将是完全一样的,但在PHP中,然后是的,你很好,在未来只是衡量。您可以轻松地创建一些包含数千项的伪数组,只需看看它从何处开始变慢。测量总是很重要的