>백엔드 개발 >PHP 튜토리얼 >PHP 코드 최적화 팁

PHP 코드 최적화 팁

巴扎黑
巴扎黑원래의
2016-11-22 15:47:051237검색

PHP 코드 최적화 팁
1. 메소드가 정적으로 선언되면 속도가 1/4로 증가할 수 있습니다.
2. 에코는 인쇄보다 효율적입니다. 값을 반환하지 않으면 인쇄는 정수를 반환합니다.
3. 루프 도중이 아니라 루프 전에 최대 루프 수를 설정합니다.
4. 메모리를 해제하기 위해 변수, 특히 큰 배열을 삭제합니다.
5 . __get, __set, __autoload 등과 같은 마법 메서드를 사용하지 마세요.
6. requiere_once()는 리소스를 더 많이 사용합니다.
7. 포함 및 요구 사항에 절대 경로를 사용하여 분석하는 데 시간이 덜 걸립니다. path;
8. sexinsex에서 스크립트 실행까지의 시간이 필요한 경우 $_SERVER['REQUSET_TIME']이 time()보다 낫습니다.
9. 효율성이 Regular;//
10보다 높기 때문입니다. str_replace 문자 교체는 일반 교체 preg_replace보다 빠르지만 strtr은 str_replace;
11보다 1/4 더 빠릅니다. 간단한 문자를 매개변수로 사용하고(예: 문자 대체 및 매개변수 목록
이 너무 길지 않은 경우
배열을 검색으로 받아들이는 대신 한 번에 한 문자만 바꾸는 보다 간결한 대체 문을 사용하는 것을 고려할 수 있습니다) 대체 매개변수. 큰 것을 작게 만듭니다. 1+1>2;
12. 오류를 덮기 위해 @를 사용하면 스크립트 실행 속도가 느려집니다.
13. $row['id']는 $row보다 7배 빠릅니다. [id]를 유지하는 것이 좋습니다. 배열 키에 따옴표를 추가하는 습관;
14. 오류 메시지는 매우 유용합니다.
15. For($x=와 같은 함수를 루프에 사용하지 마세요. 0; $x < count($array); $x ), count() 함수는 외부에서 먼저 계산됩니다.
16. 전역 변수 생성은 로컬 변수보다 2배 느립니다.
17. ($this->prop++)와 같은 객체 속성(클래스의 변수)은 지역 변수보다 3배 느립니다.
18. 선언되지 않은 지역 변수를 생성하는 것은 초기화된 지역 변수보다 9-10배 느립니다.
19. 어떤 함수에서도 지역 변수가 사용되지 않았음을 표시하면 전역 변수도 성능을 저하시킵니다(같은 수의 지역 변수를 선언하는 것과 동일
). PHP는 이 전역 변수가 존재하는지 확인할 수 있습니다. >20. 메소드의 성능은 클래스에 정의된 메소드의 성능과 동일합니다. 테스트된 클래스에 10개 이상의 메소드
를 추가해도 성능 차이가 없으므로 숫자는 중요하지 않습니다. 테스트 메소드 전후);
21. 하위 클래스의 메소드 성능이 하위 클래스의 성능보다 좋습니다.
22. 매개변수를 하나만 호출하고 함수 본문이 비어 있는 함수는 7을 사용합니다. -8개의 $localvar++ 작업을 실행하는 반면
유사한 메서드(클래스의 함수)는 약 15개의 $localvar++ 작업을 수행합니다.
23. 문자열을 출력할 때 점 대신 쉼표를 사용하는 것이 더 빠릅니다. 참고: 이 함수는 일부 문자열을 매개변수로 사용할 수 있습니다.
24. Apache 서버에서 PHP 스크립트 페이지는 해당 HTML 정적 페이지보다 생성하는 데 최소 2-10배 더 걸립니다. 🎜> 더 많은 정적 HTML 페이지와 몇 가지 스크립트를 사용하는 것이 좋습니다.
25. 캐시가 설치되어 있지 않으면 액세스할 때마다 PHP 스크립트를 다시 컴파일해야 합니다. 일부 반복적인 컴파일을 제거하여 성능을 20~100% 크게 향상시킬 수 있는 PHP
캐시 프로그램을 설치하는 것이 좋습니다.
26 고성능 분산 메모리 개체 캐싱인 memcached를 사용하는 것이 좋습니다. 시스템, 동적 네트워크 애플리케이션 성능 향상을 위해
데이터베이스 부담을 줄입니다
27. ip2long() 및 long2ip() 함수를 사용하여 IP 주소를 정수로 변환하고 대신 데이터베이스에 저장합니다. 캐릭터. 이렇게 하면 저장 공간이 거의 1/4로 줄어듭니다. 동시에 주소를 쉽게 정렬하고 신속하게 검색할 수 있습니다.
28. checkdnsrr()을 사용하여 도메인 이름의 존재를 통해 일부 이메일 주소의 유효성을 확인할 수 있습니다.
도메인 이름은 IP 주소에 해당합니다. ;
29. php5 및 mysql4.1 이상을 사용하는 경우 mysql_*의 향상된 기능인 mysqli_*를 사용해 보세요.
30. :);
31. 프로젝트를 완전히 다시 실행하기 전에 PEAR에 필요한 것이 있는지 확인하세요. PEAR는 거대한 리소스 라이브러리입니다.
많은 PHP 개발자가 이를 알고 있습니다.
32. 자동으로 페이지 소스 코드의 올바른 형식의 복사본을 인쇄하려면
error_reporting(0) 기능을 사용하세요. 잠재적으로 민감한 정보가 사용자에게 표시되는 것을 방지합니다. 이상적으로는 php.ini 파일에서 오류 보고 기능을
완전히 비활성화해야 합니다. 그러나 공유 가상 호스트를 사용하고 있고 php.ini를 수정할 수 없다면
error_reporting(0) 함수를 추가하고 각 스크립트 파일의 첫 번째 줄에 두는 것이 좋습니다(또는
require_once를 사용하는 것이 좋습니다) ( ) 로드) 이는 오류 발생 시 민감한 SQL 쿼리 및 경로가 표시되는 것을 효과적으로 보호할 수 있습니다.
34. gzcompress() 및 gzuncompress()를 사용하여 대용량 문자열을 압축(압축 풀기)하고 ( out) 번호
데이터베이스입니다. 이 내장 함수는 gzip 알고리즘을 사용하여 최대 90%까지 압축할 수 있습니다.
35. 함수는 매개변수 변수 주소를 참조하여 여러 개의 반환 값을 가질 수 있습니다. 변수 앞에 "&"를 추가하여
값이 아닌 주소로 전달
36. strlen()을 사용하면 소문자 및 해시 테이블과 같은 다른 작업을 호출해야 하기 때문에 속도가 그리 빠르지 않습니다. ,
isset()을 사용하여 유사한 기능을 수행할 수 있으며 isset()는 strlen()보다 빠릅니다.

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