小编src*_*der的帖子

在PHP中FOR FOR FOR FORACH的性能

首先,我理解90%的应用程序中性能差异完全不相关,但我只需要知道哪个是更快的构造.那......

目前在网上提供的信息令人困惑.很多人说foreach很糟糕,但从技术上来说它应该更快,因为它假设使用迭代器简化了数组遍历的编写.迭代器,再次假设更快,但在PHP中也显然死得很慢(或者这不是PHP的东西?).我在谈论数组函数:next()prev()reset()等等,如果它们是偶数函数而不是那些看起来像函数的PHP语言特性之一.

为了缩小这个范围:我在以超过1的步长遍历数组时没有兴趣(也没有负步骤,即反向迭代).我也对从任意点到任意点的遍历不感兴趣,只有0到长度.我也没有看到定期操作超过1000个键的数组,但我确实看到一个数组在应用程序的逻辑中被遍历了多次!另外,对于操作,主要是字符串操作和回声.

以下是一些参考站点:
http://www.phpbench.com/
http://www.php.lt/benchmark/phpbench.php

我到处听到的内容:

  • foreach很慢,因此for/ while更快
  • PHP foreach复制它迭代的数组; 为了使它更快你需要使用引用
  • 像这样的代码:比a更快$key = array_keys($aHash); $size = sizeOf($key);
    for ($i=0; $i < $size; $i++)
    foreach

这是我的问题.我写了这个测试脚本:http://pastebin.com/1ZgK07US,无论我运行脚本多少次,我得到这样的东西:

foreach 1.1438131332397
foreach (using reference) 1.2919359207153
for 1.4262869358063
foreach (hash table) 1.5696921348572
for (hash table) 2.4778981208801
Run Code Online (Sandbox Code Playgroud)

简而言之:

  • foreachforeach参考更快
  • foreach 比...更快 for
  • foreachfor比哈希表更快

谁能解释一下?

  1. 难道我做错了什么?
  2. PHP foreach引用的东西真的有所作为吗?我的意思是,如果你通过引用传递它为什么不复制它?
  3. foreach语句的等效迭代器代码是什么; 我在网上看到了一些,但每次我测试它们的时机都是关闭的; 我还测试了一些简单的迭代器结构,但似乎从来没有得到过不错的结果 - PHP中的数组迭代器是不是很糟糕?
  4. 是否有更快的方法/方法/构造来迭代除FOR/FOREACH(和WHILE)之外的数组?

PHP版本5.3.0


编辑:答案 在这里的人的帮助下,我能够拼凑出所有问题的答案.我在这里总结一下:

  1. "难道我做错了什么?" …

php arrays performance foreach for-loop

127
推荐指数
3
解决办法
10万
查看次数

如何获取Webpack中每个块包含的所有文件(或模块)的列表

似乎无法在webpack中找到任何调试选项或插件来显示究竟是什么进入了一个块.

我为什么需要这个?我注意到代码分割的字面意思使得一切都变得更大,然后将所有东西都放在一个文件中.这有点反直觉,因为我不相信webpack的bootstrap代码是那么重要; 我怀疑它可能是缩小/重复数据删除,但不知道哪些模块实际上被分块,很难做一些孤立的测试来确认.

我的构建过程使用gulp; 如果这有任何区别.

javascript gulp webpack webpack-4

17
推荐指数
4
解决办法
1万
查看次数

通过ruby文件确认可执行文件(脚本,bat,cmd,exe)的存在

使用ruby文件(或任何rake工具),我需要确定执行我的脚本的用户是否能够执行某些Shell命令。尤其是g ++等。希望与系统无关,因此,如果存在某些g ++。bat,g ++。exe或只是g ++(等),则只要在用户系统上的路径和可执行文件上都应该说是。

示例:如果用户具有该文件的无扩展名可执行文件版本和该文件的.cmd版本,则对于Linux系统上的no扩展名版本,应该说“是”,而对于Windows上的.cmd版本则应说“是”。系统。由于用户外壳程序只能执行该版本的文件。

这样做的目的是允许脚本进行自我配置(尽可能多)。

关于如何执行此操作的任何建议?

ruby rake rakefile

3
推荐指数
1
解决办法
2995
查看次数

标签 统计

arrays ×1

for-loop ×1

foreach ×1

gulp ×1

javascript ×1

performance ×1

php ×1

rake ×1

rakefile ×1

ruby ×1

webpack ×1

webpack-4 ×1