>  기사  >  백엔드 개발  >  PHP 코드 최적화 지식 공유

PHP 코드 최적화 지식 공유

小云云
小云云원래의
2018-03-05 14:00:311275검색

이 기사는 주로 PHP 코드 최적화에 대한 지식을 공유합니다. 이 기사는 코드 최적화에 대한 40가지 이상의 지식 포인트를 요약합니다.

1. 변수만 복사하지 마세요

BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];

2. 문자열에 작은따옴표를 사용하세요
3. if/else
4 대신에 스위치/케이스를 사용하세요. 웹 페이지의 탐색 속도를 향상하려면 Apache의 mod_deflate 모듈을 켜세요.
5. 데이터베이스 연결은 사용이 끝나면 닫아야 하며, 긴 연결을 사용하지 마세요.
PHP 생성 최적화
1. 메소드가 정적으로 선언되면 속도가 1/4로 증가할 수 있습니다.
2 echo는 반환 값이 없고 인쇄가 반환되기 때문에 인쇄보다 효율적입니다. 정수 ;
3. 루프 내부가 아닌 루프 앞에 최대 루프 수를 설정합니다. 대신 foreach를 사용하는 것이 가장 좋습니다.
4. 메모리를 해제하려면 변수, 특히 unset(), null을 사용하지 마세요. __get, __set, __autoload 등과 같은 매직 메소드를 사용하면
6. require_once()가 더 많은 리소스를 소비하므로 require()는 더 높은 실행 효율성을 제공합니다. 경로 분석 시간이 덜 걸립니다;
8. sexinsex에서 스크립트 실행까지의 시간을 알고 싶다면 $_SERVER['REQUSET_TIME']이 time()보다 낫습니다.
9. 효율성 때문에 사용합니다. 일반;
10.str_replace 문자 교체는 일반 교체 preg_replace보다 빠르지만 strtr은 str_replace;
11보다 1/4 빠릅니다. 매개변수 목록은 너무 길지 않습니다. 배열을 검색 및 대체 매개변수로 받아들이는 대신 한 번에 하나의 문자만 바꾸려면 더 간결한 대체 문을 사용하는 것이 좋습니다. 큰 것을 작게 만드세요. 1+1>2;
12. 오류를 덮기 위해 @를 사용하면 스크립트 실행 속도가 느려집니다.
13.$row['id']는 $row[id]보다 7배 빠릅니다. 배열 키 플러스를 개발하는 것이 좋습니다.
14. 오류 메시지는 매우 유용합니다. 예를 들어 For($x=0; $x e45f7a9d5e04f636106cc1578d2dd78cprop++)와 같은 개체 속성(클래스의 변수) 생성은 로컬 변수보다 3배 느립니다.
19. 초기화된 지역 변수보다 -10배 느립니다.
20. 어떤 함수에서도 사용되지 않은 전역 변수를 선언하면 성능이 저하됩니다(동일한 수의 지역 변수를 선언하는 것과 동일). PHP는 전역 변수가 존재하는지 확인할 수 있습니다.
21. 메소드의 성능은 클래스와 동일합니다. 정의된 메소드의 수는 중요하지 않습니다. 테스트된 클래스에 10개 이상의 메소드를 추가해도 성능 차이가 없기 때문입니다.
22. 하위 클래스의 메서드 성능은 기본 클래스 In class;
23. 매개변수 하나만 호출하고 함수 본문이 비어 있는 함수는 실행하는 데 7~8개의 $localvar++ 작업이 필요합니다. 비슷한 메서드(클래스의 함수)를 실행하려면 약 15개의 $localvar++ 작업이 필요합니다.
24. 문자열을 정의할 때 작은따옴표가 큰따옴표보다 낫습니다.
25 문자열을 출력할 때 점 대신 쉼표를 사용하는 것이 더 빠릅니다. . 참고: 이 함수는 일부 문자열을 매개변수로 사용할 수 있습니다.
26 Apache 서버에서 PHP 스크립트 페이지는 해당 HTML 정적 페이지보다 생성하는 데 최소 2-10배 더 오래 걸립니다. 더 많은 정적 HTML 페이지와 몇 가지 스크립트를 사용하세요.
27. 캐시가 설치되어 있지 않으면 액세스할 때마다 PHP 스크립트를 다시 컴파일해야 합니다. 일부 반복적인 컴파일을 제거하여 성능을 20~100% 크게 향상시킬 수 있는 PHP 캐싱 프로그램을 설치하는 것이 좋습니다.
28 고성능 분산 메모리 객체 캐싱 시스템인 memcached를 사용하는 것이 좋습니다. 동적 네트워크 애플리케이션의 성능, 데이터베이스 부담을 줄입니다.
29. ip2long() 및 long2ip() 함수를 사용하여 IP 주소를 문자 대신 데이터베이스에 저장합니다. 이렇게 하면 저장 공간이 거의 1/4로 줄어듭니다. 동시에 주소를 빠르게 정렬하고 검색할 수 있습니다.
30. checkdnsrr()을 사용하여 도메인 이름의 존재를 통해 일부 이메일 주소의 유효성을 확인할 수 있습니다.
31. php5 및 mysql4.1 이상을 사용하는 경우 mysql_*의 향상된 기능인 mysqli_*를 사용해 보세요.
33. 이전 프로젝트를 완전히 다시 실행하여 PEAR에 필요한 것이 있는지 확인하십시오. PEAR는 많은 PHP 개발자가 알고 있듯이 거대한 리소스 라이브러리입니다.
34. 하이라이트 파일()을 사용하여 페이지 소스 코드의 올바른 형식을 자동으로 인쇄하세요.
35 잠재적인 오류를 방지하려면 error_reporting(0) 기능을 사용하세요. 사용자에게 표시됩니다. 이상적으로는 php.ini 파일에서 오류 보고를 완전히 비활성화해야 합니다. 그러나 공유 가상 호스트를 사용하고 있고 php.ini를 수정할 수 없다면 error_reporting(0) 함수를 추가하고 이를 각 스크립트 파일의 첫 번째 줄에 넣는 것이 좋습니다(또는 require_once()를 사용하여 로드합니다).
36. 데이터베이스 저장(검색) 시 대용량 문자열을 압축(압축 해제)하려면 gzcompress() 및 gzuncompress()를 사용하세요. 이 내장 함수는 gzip 알고리즘을 사용하여 90%까지 압축할 수 있습니다.
37. 함수는 매개변수 변수 주소를 참조하여 여러 개의 반환 값을 가질 수 있습니다. 변수 앞에 "&"를 추가하여 값이 아닌 주소로 전달됨을 나타낼 수 있습니다.
38. "마법의 인용문"과 SQL 주입의 위험성을 완전히 이해하세요. 이 글을 읽는 대부분의 개발자가 이미 SQL 주입에 익숙하기를 바랍니다.
그러나 한 번도 이해한 적이 없다면 매우 중요하기 때문에 여기에 나열합니다. 이전에 용어를 들었으므로 하루 종일 검색하고
읽으세요. 39. strlen()을 사용하면 소문자 및 해시 테이블 쿼리와 같은 다른 작업을 호출해야 하기 때문에 속도가 그리 빠르지 않습니다. 유사한 기능의 경우 isset()이 strlen()보다 빠릅니다.
40. $i++ 증가 또는 $i-- 감소는 ++$i 또는 --$i보다 약간 느립니다. PHP이며 다른 언어에는 적합하지 않습니다
42. foreach 루프는 while 또는 for *
43을 대체합니다. 대용량 파일에는 file_get_contents()를 사용하고, 작은 파일에는 fopen(), fread()를 사용하세요
44. 클래스
Opcode를 볼 수 있는 VLD 도구
Xdebug PHP 프로그램 디버거는 PHP 프로그램의 실행 상태를 추적, 디버그 및 분석하는 데 사용됩니다.
WinCacheGrind 디버깅 도구는 PHP 호출 횟수와 시간 등을 볼 수 있습니다.

관련 권장 사항:

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

PHP 코드 최적화 요약

PHP 코드 최적화 및 PHP 관련 문제 요약

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

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