> 백엔드 개발 > PHP 튜토리얼 > 배열 및 SplFixedArray 비교(코드 예)

배열 및 SplFixedArray 비교(코드 예)

藏色散人
풀어 주다: 2023-04-06 13:50:02
앞으로
2769명이 탐색했습니다.

PHP의 핵심은 배열의 활용입니다. 배열을 잘 활용하면 모든 데이터 구조에서 사용할 수 있습니다. 우리가 사용할 데이터 구조가 많은 SPL이라는 좋은 것이 있는데, 배열을 사용하여 얻을 수 있는 것보다 성능이 훨씬 더 좋습니다.

오늘은 이름에서 알 수 있듯이 고정 크기 배열인 SplFixedArray를 살펴보겠습니다. 인스턴스화할 때 배열 크기를 지정하십시오. 사용 중에는 배열을 확장하거나 줄일 수 없습니다.

따라서 배열에 동적 연산을 수행하는 경우 사용하기에 적합하지 않을 수 있으며 SplFixedArray의 인덱스는 숫자만 가능하며 키 값 배열로 사용할 수 없습니다.

다음은 Array 및 SplFixedArray의 100W 읽기 및 쓰기 성능과 메모리 사용량 테스트입니다

Code

<?php
define(&#39;TEST_COUNT&#39;, 1000000);
$memory = memory_get_usage();
$writeTime = microtime(true);
$arr = [];
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $arr[] = $i;
}
$writeTime = microtime(true) - $writeTime;
 
$readTime = microtime(true);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $value = $arr[$i];
}
$readTime = microtime(true) - $readTime;
$memory = memory_get_usage() - $memory;
echo &#39;[Array]&#39;, PHP_EOL, &#39;Memory: &#39;, $memory, &#39; bytes&#39;, PHP_EOL, &#39;Write Time: &#39;, $writeTime, &#39;s&#39;, PHP_EOL, &#39;Read Time: &#39;, $readTime, &#39;s&#39;, PHP_EOL;
 
$memory = memory_get_usage();
$writeTime = microtime(true);
$splFixedArray = new SplFixedArray(TEST_COUNT);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $splFixedArray[$i] = $i;
}
$writeTime = microtime(true) - $writeTime;
 
$readTime = microtime(true);
for($i = 0; $i < TEST_COUNT; ++$i)
{
    $value = $splFixedArray[$i];
}
$readTime = microtime(true) - $readTime;
$memory = memory_get_usage() - $memory;
echo &#39;[SplFixedArray]&#39;, PHP_EOL, &#39;Memory: &#39;, $memory, &#39; bytes&#39;, PHP_EOL, &#39;Write Time: &#39;, $writeTime, &#39;s&#39;, PHP_EOL, &#39;Read Time: &#39;, $readTime, &#39;s&#39;, PHP_EOL;
로그인 후 복사
#🎜 🎜## 🎜🎜#실행 결과


[Array]
Memory: 33558608 bytes
Write Time: 0.083034038543701s
Read Time: 0.022516965866089s
[SplFixedArray]
Memory: 16003208 bytes
Write Time: 0.037343978881836s
Read Time: 0.022947072982788s
로그인 후 복사
결론

메모리 사용량: SplFixedArray는 다음보다 더 많이 절약할 수 있습니다. 어레이 메모리의 절반

쓰기 성능: SplFixedArray가 어레이보다 빠릅니다

읽기 성능: 50/50, 많은 테스트를 거친 후 어레이 읽기 속도가 훨씬 빠릅니다

# 🎜🎜#인덱스 배열만 사용해야 하고 배열 구성원 수를 예측할 수 있다고 확신한다면 분명히 SplFixedArray를 사용하는 것이 더 적합합니다.

위 내용은 배열 및 SplFixedArray 비교(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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