我对数组的大量元素表现有疑问。我有这个大阵列,目前有大约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>');
}
答案 0 :(得分:0)
定义一个包含500个项目的数组可能会足够快。如果你没有对阵列做任何有趣的事情,除了打印它的内容,你可能不必担心。
如果你想知道这样的话,那就试试吧。
答案 1 :(得分:0)
理论上,阵列的大小没有限制。在您的情况下,我没有看到任何重大的性能影响。您唯一需要担心的是它是否会导致基于分配给脚本的内存导致内存问题(正如您所说的阵列会增长)。这可以在php.ini配置中的'memory_limit'
中更改。
对于大型数组,性能还取决于在大型数组中拥有所有数据后将执行的操作。像in_array
这样的操作必须在最坏的情况下搜索整个数组。
答案 2 :(得分:0)
500+不会对性能产生巨大影响。如果您的服务器具有良好的RAM,即使达到10,000 - 50,000+,也不需要担心。
但是你的关注点对于规模能力有一个有效的观点。尝试使用已知密钥为您的数组编制索引,并始终尝试使用isset[<knonwn_key>]
而不是进行is_array
操作(如Joey所述)。
如果您遇到性能问题,即使这样做,也是时候转到memcache
了。 (如果你有一个已知的密钥数组,那么从普通数组转到内存缓存很容易)
希望这会对你有所帮助!感谢。