>  기사  >  백엔드 개발  >  PHP 함수 및 의사 함수 사용: 긴 함수 이름이 성능에 영향을 미치나요?

PHP 함수 및 의사 함수 사용: 긴 함수 이름이 성능에 영향을 미치나요?

WBOY
WBOY원래의
2016-07-29 09:01:16994검색

함수 이름이 길면 성능에 영향을 미칩니다
PHP 기능 사용에 대해 아래에 몇 가지 제안 사항이 있습니다
1. 함수는 내장 함수를 사용하여 수행할 수 있습니다. 자신만의 PHP 함수를 작성하는 대신 내장 함수를 사용해 보십시오.
2. 특정 기능에 높은 성능 요구 사항이 있는 경우 확장 기능을 사용하여 구현하는 것을 고려할 수 있습니다.
3. PHP 함수 호출은 비용이 많이 들므로 과도하게 캡슐화하지 마십시오. 일부 함수는 여러 번 호출해야 합니다
1~2줄의 코드만으로 구현할 수 있습니다. 호출을 캡슐화하지 않는 것이 좋습니다.
4. 다양한 디자인 패턴에 지나치게 집착하지 마세요. 이전 글에서 설명한 것처럼 과도한 캡슐화는 성능 저하를 초래합니다. 둘 사이에는 고려해야 할 절충점이 있습니다.
PHP는 그 나름의 특성을 갖고 있으므로 Java 모델을 너무 많이 모방해서는 안 됩니다.
5. 함수는 너무 깊게 중첩되어서는 안 되며 재귀를 주의해서 사용해야 합니다.
6. 의사 함수는 성능이 뛰어나며 동일한 함수를 구현할 때 우선순위가 부여됩니다. 예를 들어 array_key_exists 대신 isset을 사용하세요
7. 참조를 반환하는 함수는 그다지 의미가 없으며 실제적인 효과도 고려하지 않는 것이 좋습니다.
8. 클래스 멤버 메서드는 일반 함수보다 효율성이 떨어지지 않으므로 성능 손실을 걱정할 필요가 없습니다. 더 나은 가독성과 보안성을 갖춘 보다 정적 메서드를 고려하는 것이 좋습니다.
9. 특별한 요구사항이 없는 한, 매개변수 전달 시 참조에 의한 전달보다는 값에 의한 전달을 사용하는 것이 좋습니다. 물론, 매개변수가 큰 배열이고 수정이 필요한 경우에는 참조로 전달하는 것을 고려할 수 있습니다.

의사 함수와 그 성능
PHP에는 표준 함수 사용법인 일부 함수가 있지만 기본 구현은 실제 함수 호출과 완전히 다릅니다
위에서 언급한 세 가지 기능 중 어느 것에도 속하지 않습니다. 그 본질은 별도의 opcode이며, 여기서는 의사 기능 또는 명령 기능이라고 합니다.
위에서 언급한 것처럼 의사 함수는 표준 함수와 동일하게 사용되며 동일한 특성을 갖는 것처럼 보입니다. 하지만 마침내 처형되었을 때 그들은 젠드였습니다
호출할 해당 명령어(opcode)로 반영되므로 그 구현이 if, for, 산술연산 등의 연산에 더 가깝습니다.
PHP의 의사 함수

<code><span>isset</span><span>empty</span><span>unset</span><span>eval</span></code>

위의 소개에서 볼 수 있듯이 의사 함수는 실행 명령으로 직접 변환되므로 일반 함수에 비해 함수 호출 오버헤드가 하나 적습니다.
그래서 성능이 더 좋아질 것입니다. 다음 테스트를 통해 비교해보겠습니다. Array_key_exists와 isset 모두 배열의 키를 결정할 수 있습니다
존재한다면 퍼포먼스를 살펴보세요
그림에서 볼 수 있듯이, array_key_exists와 비교할 때 isset 성능은 기본적으로 전자보다 약 4배 더 높으며 빈 함수 호출에서도 마찬가지입니다
비교해 보면 성능은 약 1배 정도 높습니다. 이는 또한 PHP 함수 호출의 오버헤드가 여전히 상대적으로 크다는 것을 증명합니다.

http://txjia.com/tip/?2013-1K-BPEG

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 PHP 함수와 의사 함수의 사용을 소개합니다. 긴 함수 이름이 성능에 영향을 미치나요? , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.