>백엔드 개발 >PHP 튜토리얼 >PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

不言
不言앞으로
2019-04-01 09:25:153459검색

이 기사는 PHP 코드 최적화 방법(그림 및 텍스트)을 소개합니다. 필요한 참고 자료가 있으면 도움이 될 것입니다.

PHP에서 배열에 데이터를 삽입하는 방법에는 일반적으로 여러 가지가 있습니다.

정의할 때 ​​직접 값을 할당합니다.

$arr = array(‘apple’, ’banana’);

배열 변수 작업 사용

$arr = array();
$arr[] = ‘apple’;
$arr[] = ‘banana’;

array_push()를 사용하여

$arr = array(‘apple’);
array_push($arr, ‘banana’, ‘orange’);
를 삽입합니다.

프로젝트에서 대부분의 경우, 데이터베이스에서 데이터를 얻은 다음 이를 배열 형식으로 변환합니다. 첫 번째 경우 배열을 정의할 때 직접 할당은 데이터 양이 매우 적고 알려진 상황에만 적합한 경우가 많습니다. 코드 최적화가 없습니다. 우리는 주로 두 번째와 세 번째 유형에 대해 이야기합니다.

array_push 사용법에 대해서는 많이 소개하지 않겠습니다. 공식 문서(https://secure.php.net/manual/en/function.array-push.php)를 직접 읽어보시기 바랍니다.

성능 비교

테스트에는 PHP 7.2를 사용했으며 구성 최적화는 수행하지 않았습니다. 테스트 방법: 두 번째 방법과 세 번째 방법을 각각 사용하여 배열을 정의하고 100,000개의 레코드를 삽입합니다. 코드는 대략 다음과 같습니다.

PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

convert 함수를 사용하여 메모리 사용량을 확인하면 다음과 같습니다. :

PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

PHP 코드 최적화 방법 소개(그래픽 및 텍스트)

위 코드를 여러번 실행해 보면 배열 변수 할당을 직접 사용하면 약 0.0045 정도 소요되는 반면, array_push를 사용하면 약 0.006 정도 소요되는 것을 알 수 있습니다. 둘 다 100,000개의 레코드입니다.

두 가지 방법을 비교해 보면 각 루프에서 함수 호출에 시간이 걸리기 때문에 실제로 두 번째 방법이 array_push를 호출하는 것보다 빠르다는 것을 알 수 있지만, 위 테스트만 보면 두 번째 방법이 훨씬 빠르지는 않은 것 같습니다. 세 번째 방법보다 완전히 무시할 수 있습니다.

실제로 이러한 종류의 최적화는 대부분의 애플리케이션에서 최적화가 없는 것과 다르지 않지만 애플리케이션이 병목 현상에 도달하면 눈에 띄지 않는 모든 최적화가 성능을 크게 향상시킬 수 있습니다. 또한 테스트에서는 배열 구조가 매우 간단합니다. 실제 프로젝트에서는 데이터 유형이 그렇게 단일하지 않고 중첩된 배열일 수도 있으며, 배열의 크기가 100,000을 초과할 수도 있습니다.

둘의 차이점을 살펴보겠습니다. array_push()는 함수 호출이고 다른 하나는 코드 크기 측면에서 보면 동일합니다. 구조적인 관점에서 보면 인덱스는 기본적으로 0부터 시작하므로, 데이터를 삽입하기 위해 key => value를 사용하려는 경우 array_push()는 처리하기가 매우 어렵습니다. 방법 2를 사용하는 것이 편리합니다: $array1[$key] => $x.

전에 array_push()가 좋지 않다고 이야기했지만 때로는 array_push가 여전히 매우 유용할 때도 있습니다. 예를 들어 여러 요소를 한 번에 삽입하려는 경우 다음과 같이 사용할 수 있습니다.

$arr = array(‘a’, ’b’);
array_push($arr, ‘c’, ‘d’);
// $arr = array(‘a’, ’b’, ‘c’, ‘d’);

위 비교에서 알 수 있듯이 PHP에는 배열 보간 방법이 많이 있지만 각 방법은 비슷합니다. 각 방법을 언제 사용해야 하는지 이해하는 데 여전히 유용합니다.

【추천 강좌: PHP 동영상 튜토리얼

위 내용은 PHP 코드 최적화 방법 소개(그래픽 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제