php 성능 최적화 사례
코드 의 병목 최적화
호 어 는 일찍이"너무 일찍 최적화 하 는 것 이 모든 불행 의 근원"이 라 고 말 한 적 이 있다.당신 이 당신 의 사 이 트 를 더욱 빨리 돌아 가게 하려 고 할 때,당신 은 최적화 된 일 을 해 야 합 니 다.코드 를 바 꾸 기 전에 해 야 할 일 은 어떤 원인 으로 시스템 이 느 려 졌 습 니까?당신 은 아래 의 지도 와 다른 방식 으로 당신 의 php 를 최적화 할 수 있 습 니 다.데이터베이스 원인 일 수도 있 고 인터넷 원인 일 수도 있 습 니 다!phop 코드 를 최적화 함으로써 시스템 병목 을 찾 아 볼 수 있 습 니 다.
php 버 전 업그레이드
당신 의 팀 원 들 은 최근 몇 년 동안 phop 엔진 이 상징적 인 성능 을 향상 시 켰 다 고 주장 합 니 다.만약 웹 서버 가 php 3 나 php 4 와 같은 오래된 버 전 을 실행 하고 있다 면.그러면 코드 를 최적화 하려 고 시도 하기 전에 버 전 간 의 업그레이드 상황 을 깊이 조사해 야 한다.
캐 시 사용
캐 시 모듈(예 를 들 어 Memcache)이나 템 플 릿 시스템(예 를 들 어 Smarty)을 이용 하여 캐 시 처 리 를 합 니 다.우 리 는 데이터베이스 결 과 를 캐 시 하고 페이지 결 과 를 추출 하 는 방식 으로 사이트 의 성능 을 향상 시 킬 수 있다.
출력 버퍼 사용
스 크 립 트 가 렌 더 링 을 시도 할 때 php 는 메모리 캐 시 를 사용 하여 모든 데 이 터 를 저장 합 니 다.캐 시 영역 은 응답 할 데 이 터 를 모두 채 우 고 결 과 를 사용자 에 게 응답 하기 때문에 페이지 를 느리게 보일 수 있 습 니 다.다행히도,php 가 버퍼 를 채 우기 전에 사용자 에 게 데 이 터 를 강제로 응답 하도록 변경 할 수 있 습 니 다.그러면 웹 사이트 가 더 빨 라 보일 것 입 니 다.
php 클래스 를 쓸 때 대상 속성 을 직접 조작 하면 시간 을 절약 하고 스 크 립 트 성능 을 향상 시 킬 수 있 습 니 다.유치 하고 우 스 운 setters 와 getters 가 아니 라다음은 몇몇 사례 입 니 다.dog 클래스 는 setName()과 getName()방식 으로 name 속성 을 조작 합 니 다.
class dog {
public $name = '';
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
메모:setName()과 getName()은 name 속성 을 저장 하고 되 돌려 주 는 것 외 에 아무것도 하지 않 았 습 니 다.
$rover = new dog();
$rover->setName('rover');
echo $rover->getName();
name 속성 을 직접 설정 하고 방문 하면 성능 이 100%향상 되 고 개발 시간 도 줄 일 수 있 습 니 다!
$rover = new dog();
$rover->name = 'rover';
echo $rover->name;
이유 없 이 copy 변 수 를 사용 하지 마 십시오.때때로 초급 phper 는 코드 를 더욱 깨끗하게 하기 위해 정 의 된 변 수 를 다른 변수 에 다시 할당 합 니 다.이것 은 실제 적 으로 이중 메모리 의 소 모 를 초래 하고(변 수 를 바 꿀 때)스 크 립 트 의 성능 을 떨 어 뜨 린 다.예 를 들 어 한 사용자 가 512 KB 의 변 수 를 다른 변수 에 추가 로 삽입 하면 1MB 의 메모리 가 소모 된다.
$description = strip_tags($_POST['description']);
echo $description;
위의 코드 는 아무런 이유 도 없 이 변 수 를 복사 했다.메모 리 를 추가 로 소모 하지 않 고 내 연 된 방식 으로 변 수 를 간단하게 출력 해 야 합 니 다.
echo strip_tags($_POST['description']);
SQL 작업 을 반복 하지 않도록 합 니 다.자주 저 지 르 는 오 류 는 SQL 작업 을 순환 에 두 는 것 입 니 다.이 로 인해 데이터 베 이 스 를 자주 방문 하 게 됩 니 다.더 중요 한 것 은 스 크 립 트 의 성능 이 떨 어 질 수 있 습 니 다.다음 의 예 를 들 어 하나의 순환 작업 을 하나의 SQL 구문 으로 초기 화 할 수 있 습 니 다.
foreach ($userList as $user) {
$query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
mysql_query($query);
}
프로 세 스:
INSERT INTO users (first_name,last_name) VALUES("John", "Doe")
이러한 순환 방안 을 바 꾸 면 데 이 터 를 연결 하여 단일 한 데이터 베이스 작업 이 될 수 있다.
$userData = array();
foreach ($userList as $user) {
$userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
}
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
mysql_query($query);
프로 세 스:
INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...
phop 의 성능 최적화 사례 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 phop 성능 최적화 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.