> 백엔드 개발 > PHP 튜토리얼 > PHP 코드 최적화: PHP foreach 및 속도 비교 테스트 예

PHP 코드 최적화: PHP foreach 및 속도 비교 테스트 예

PHPz
풀어 주다: 2023-03-07 09:40:01
원래의
2928명이 탐색했습니다.

실험은 나에게 컴퓨터 과학을 배우는 중요한 방법입니다. 컴퓨터 과학은 단순한 지적 게임이 아니라, 세상을 변화시키는 도구입니다. 수학적 방법과 실험 방법은 컴퓨터 연구의 기본 방법이자 학습의 기본 방법입니다. 수학은 사고 능력을 훈련하고 실험은 실제 문제를 해결하는 조작 능력과 능력을 훈련합니다. 우리의 일상 업무는 실험으로 간주되어야 하며 일상 업무에서 우리에게 유용한 것이 무엇인지 요약해야 합니다. 예를 들어, PHP 코드를 잘 작성하려면 효율성이 매우 중요합니다. 효율성이 높든 낮든 실험을 해야 합니다. 다음은 PHP의 여러 배열 루프 처리 방법에 대한 평가입니다. 테스트 코드는 매우 간단합니다. PHP foreach 및 속도 비교 예(PHP foreach는 무엇입니까?)

<?php
/**
 * array_walk 和 foreach, for 的效率的比较。
 * 我们要测试的是foreach, for, 和 array_walk的效率的问题。 
 */

//产生一个10000的一个数组。
$max = 10000;
$test_arr = range(0, $max);
$temp;
//我们分别用三种方法测试求这些数加上1的值的时间。

// for 的方法
$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    $temp = $temp + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "就使用for, 没有对数组操作 花费: {$t}\n";

$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    $test_arr[$i] = $test_arr[$i] + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用for 并且直接对数组进行了操作 花费: {$t}\n";

$t1 = microtime(true);
for ($i = 0; $i < $max; $i++) {
    addOne($test_arr[$i]);
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用for 调用函数对数组操作 花费 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    $temp = $temp + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 没有对数组操作 花费 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    $v = $v + 1;
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 直接对数组操作 : {$t}\n";

$t1 = microtime(true);
foreach ($test_arr as $k => &$v) {
    addOne($v);
}
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 foreach 调用函数对数组操作 : {$t}\n";

$t1 = microtime(true);
array_walk($test_arr, &#39;addOne&#39;);
$t2 = microtime(true);
$t = $t2 - $t1;
echo "使用 array_walk 花费 : {$t}\n";

function addOne(&$item) {
    $item = $item + 1;
}
?>
로그인 후 복사


실행 결과:
배열 작업에 비용을 들이지 않고 사용: 0.15388584136963
배열 작업에 비용을 들이지 않고 foreach 사용: 0.076934814453125

배열을 직접 조작하고 사용합니다. 비용: 0.14769005775452
foreach를 사용하여 배열을 직접 조작합니다. 0.076115131378174


통화에 사용합니다. 함수의 배열 연산: 0.32393312454224
foreach를 사용하여 배열을 연산하는 함수 호출: 0.25716996192932
array_walk 사용 비용: 0.17966890335083


10,000 숫자 작업 중에는 이 실험을 통해 다음과 같은 결론을 내릴 수 있습니다.

foreach는 for보다 훨씬 더 효율적입니다. 아마도 가장 큰 이유는 for가 많은 조건부 판단을 수행해야 하기 때문일 것입니다. 따라서 앞으로는 사용할 수 있는 모든 곳에서 foreach를 사용하면 효율성이 두 배로 높아질 수 있습니다.

루프 내에서 함수를 호출하려면 array_walk를 사용하는 것이 가장 좋습니다. foreach보다 2배 효율적이고 43% 더 효율적입니다.

또 다른 팁은 프로그램의 효율성 요구 사항이 매우 높다면 array_walk를 사용하여 루프 내에서 직접 코드를 작성하는 것이 가장 좋다는 것입니다.

위 내용은 PHP 코드 최적화: PHP foreach 및 속도 비교 테스트 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿