>백엔드 개발 >PHP 튜토리얼 >PHP 코드 최적화를 위한 38가지 팁(요약)

PHP 코드 최적화를 위한 38가지 팁(요약)

藏色散人
藏色散人앞으로
2020-01-25 18:54:532410검색

PHP 코드 최적화를 위한 38가지 팁(요약)

1. 메소드가 정적일 수 있는 경우 이를 정적으로 선언하면 속도가 1/4;

2 증가할 수 있습니다. . echo는 값을 반환하지 않고 print가 정수를 반환하기 때문에 echo의 효율성이 더 높습니다.

3 루프 도중이 아니라 루프 이전에 최대 루프 수를 설정합니다. ;

# 🎜🎜#4. 특히 큰 배열을 해제하려면 변수를 삭제하세요.

5 __get, __set, __autoload 등과 같은 마법 메서드를 사용하지 마세요.;

# 🎜🎜#6. requirere_once()는 더 많은 리소스를 소비합니다.

7. 포함 및 요구에 절대 경로를 사용하면 경로를 분석하는 데 시간이 덜 걸립니다.

8. sexinsex부터 스크립트가 실행되는 시간까지 필요하다면 $_SERVER['REQUSET_TIME']이 time();

9보다 낫습니다. 문자 처리 기능을 사용할 수 있다면 사용해 보세요. , 효율성이 일반보다 높기 때문입니다;#🎜 🎜#

10. str_replace 문자 교체는 일반 교체 preg_replace보다 빠르지만 strtr은 str_replace보다 1/4 빠릅니다. 함수는 배열과 단순 문자를 모두 허용할 수 있습니다. 문자 대체와 같은 매개변수의 경우 매개변수 목록이 너무 길지 않으면 배열을 검색으로 허용하는 대신 한 번에 한 문자만 바꾸는 보다 간결한 대체 문을 사용하는 것을 고려할 수 있습니다. 및 대체 매개변수. 큰 것을 작게 만드세요. 1+1>2;

12. @로 오류를 처리하면 스크립트의 실행 속도가 느려집니다. ]는 $row [id]보다 7배 빠릅니다.

14 오류 메시지는 매우 유용합니다.

15. 루프에서 함수를 사용하지 마세요. 예를 들어 For($x=0; $x < count($array); $x), count() 함수는 #🎜🎜 #

16. 메소드에서 로컬 변수를 설정하는 것이 가장 빠릅니다. 97xxoo는 메소드에서 로컬 변수를 호출하는 것만큼 빠릅니다.

17 전역 변수를 생성하는 것은 2배 느립니다. 지역 변수;

18. 객체 속성 만들기(클래스의 변수) 예를 들어 ($this->prop++)는 지역 변수보다 3배 느립니다. . 선언되지 않은 지역 변수를 생성하는 것은 초기화된 지역 변수보다 10배 느립니다.

20. 어떤 함수에서도 사용되지 않은 전역 변수를 선언하면 성능이 저하됩니다. 같은 수의 로컬 변수) PHP는 전역 변수가 존재하는지 확인할 수 있습니다. ;

21. 메소드의 성능은 클래스에 정의된 메소드 수와 관련이 없습니다. 테스트된 클래스에 10개 이상의 메서드(이 메서드는 테스트 메서드 전후임) 성능에는 차이가 없습니다.

22. 하위 클래스의 메서드 성능이 하위 클래스의 메서드 성능보다 좋습니다. base class;

23. 하나의 매개변수만 호출하고 함수 본문이 비어 있는 함수 실행하는 데 걸리는 시간은 $localvar++ 작업 7~8개와 동일하지만 유사한 메서드(함수 class)는 약 15개의 $localvar++ 작업과 동일하게 실행됩니다.

24, 문자열을 ” 대신 '로 둘러싸면 PHP가 '…' 내부에서 변수를 찾지 않으므로 해석이 조금 더 빨라집니다. '. 물론 문자열에 변수가 필요하지 않은 경우에만 이 작업을 수행할 수 있습니다.

#🎜 🎜#25 문자열을 출력할 때 점 대신 쉼표를 사용하는 것이 더 빠릅니다. echo의 경우 이 함수는

26을 사용할 수 있습니다. Apache 서버에서는 해당 HTML 정적 페이지보다 최소 2~10배 더 오래 걸립니다. 캐시가 설치되어 있지 않은 한 보다 정적인 HTML 페이지와 몇 가지 단계를 사용하는 것이 좋습니다. 그렇지 않으면 액세스할 때마다 PHP 스크립트를 다시 컴파일해야 합니다. 일부 반복적인 컴파일을 제거하여 성능을 20~100% 크게 향상시킬 수 있는 PHP 캐시 프로그램을 설치하는 것이 좋습니다.

28 고성능 분산 메모리인 memcached를 사용하는 것이 좋습니다. 객체 캐싱 시스템, 동적 네트워크 애플리케이션의 성능을 향상시키고 데이터베이스에 대한 부담을 줄입니다.

29 ​​ip2long() 및 long2ip() 함수를 사용하여 IP 주소를 정수 유형으로 변환하고 저장합니다. 문자 유형 대신 데이터베이스에 있습니다. 이렇게 하면 저장 공간이 거의 1/4로 줄어듭니다. 동시에 주소를 정렬하고 빠르게 검색할 수 있습니다.

30. checkdnsrr()을 사용하여 도메인 이름의 존재를 통해 일부 이메일 주소의 유효성을 확인할 수 있습니다. 각 도메인 이름이 하나의 IP 주소에 해당하는지 확인하세요.

31. 삼항 연산자(?:);

32를 사용해 보세요. PEAR에 필요한 것이 있는지 살펴보세요. PEAR는 많은 PHP 개발자가 알고 있듯이 거대한 리소스 라이브러리입니다.

33.highlight_file()을 사용하여 페이지 소스 코드의 올바른 형식의 복사본을 자동으로 인쇄하세요.

#🎜 🎜#34 . 잠재적으로 민감한 정보가 사용자에게 표시되는 것을 방지하려면 error_reporting(0) 함수를 사용하십시오. 이상적으로는 php.ini 파일에서 오류 보고를 완전히 비활성화해야 합니다. 그러나 공유 가상 호스트를 사용하고 있고 php.ini를 수정할 수 없다면 error_reporting(0) 함수를 추가하고 각 스크립트 파일의 첫 번째 줄에 넣는 것이 좋습니다(또는 require_once()를 사용하여 로드합니다). . 이는 오류 발생 시 민감한 SQL 쿼리 및 경로가 표시되지 않도록 효과적으로 보호할 수 있습니다.

35. gzcompress() 및 gzuncompress()를 사용하여 저장(검색) 중에 대용량 문자열을 압축(압축 해제)합니다. 데이터 베이스. 이 내장 함수는 gzip 알고리즘

36을 사용하여 90%까지 압축할 수 있습니다. 함수는 매개변수 변수 주소를 참조하여 여러 개의 반환 값을 가질 수 있습니다. 변수 앞에 "&"를 추가하여 값이 아닌 주소로 전달함을 나타낼 수 있습니다.

37. "마법의 인용문"과 SQL 삽입의 위험성을 완전히 이해하세요. 이 글을 읽는 대부분의 개발자가 이미 SQL 삽입에 익숙하기를 바랍니다. 하지만 이해하는 것이 절대적으로 중요하기 때문에 여기에 나열합니다. 이전에 용어를 들었으니 하루 종일 검색하고 읽으세요.

38. strlen()을 사용하면 소문자 및 해시 테이블 쿼리와 같은 다른 작업을 호출해야 하기 때문에 속도가 그리 빠르지 않습니다. 이를 달성하려면 isset()이 strlen()보다 빠릅니다.

관련 PHP 지식을 더 보려면 php 튜토리얼을 방문하세요!

위 내용은 PHP 코드 최적화를 위한 38가지 팁(요약)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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