2012-12-03 2 views
18

방금 ​​YII 사용을 시작했고 첫 번째 앱을 관리했습니다. 불행히도, 출시일이 가까워서이 앱이 빠른 속도로 진행되기를 바랍니다. 지금까지 내가 속도를 올리는 유일한 길은 standard caching입니다. 내 앱의 속도를 높이려면 다른 어떤 방법이 있습니까?YII 응용 프로그램의 속도를 높이는 가장 빠른 방법은 무엇입니까?

+13

터닝 웹 서버 성능은 약 [성능 튜닝 (http://www.yiiframework.com/doc/guide/1.1/en/topics를 읽어했다. 공연)? –

+0

그게 내가 필요한 모든 것을 대답합니다. 이 게시물을 삭제합니까? 아니면 닫으시겠습니까? – coderama

+0

또는 @ bool.dev는 9 회 upvoted 대답을 실제 답변에 넣을 수 있으므로 coderama는이를 받아 들일 수 있습니다. 그것도 잘못된 것은 아닙니다. –

답변

19

먼저 공식 가이드에서 Performance Tuning을 읽으십시오. 또한 :

  • Check HTTP caching.
  • PHP를 업데이트하십시오. 각 주요 버전은 좋은 향상을 제공합니다.
  • 세션에 redis (또는 적어도 데이터베이스)를 사용합니다 (기본 PHP 세션은 파일을 사용 중이며 차단 중입니다).
  • 아파치 대신 (또는 함께) nginx 사용을 고려하십시오. 콘텐츠를 훨씬 잘 제공합니다.
  • CDN 사용을 고려하십시오.
  • 데이터베이스를 조정하십시오.

이들은 모두 비교적 쉽게 수행 할 수있는 일반적인 작업입니다. 나중에 받아 들일 수없는 경우에는 가정하지 마십시오. 윤곽.

+3

"APC /'{$ other_opcache} 사용"부분이 더 강조되어야한다고 생각합니다. "[이 가이드] (http://www.yiiframework.com/wiki/312/getting-the-most-out-of-apc-for-yii/)와 함께 사용 가능합니다. HTH :) – DaSourcerer

1

대부분의 앱을 캐시 할 수있는 경우 와니스 같은 프록시를 사용해보십시오. 이 조리법에

2

1. 다음 모범 사례

, 우리는 최고의 공연 YII를 구성하는 방법을 참조하고 반응하는 애플리케이션을 구축하는 몇 가지 추가 원칙을 볼 수 있습니다. 이러한 원칙은 일반적이며 Yii 관련입니다. 따라서 우리는 Yii를 사용하지 않고도 이들 중 일부를 적용 할 수 있습니다.

준비

APC (http://www.php.net/manual/en/apc.installation.php)

를 설치

yiic 웹 애플리케이션 괜찮 PHP에

기본 세션 처리를 처리 세션을 2.Speeding

를 사용하여 신선한 YII 응용 프로그램을 생성 대부분의 경우에. 당신이 세션이 처리되는 방식을 변경하려는 이유 적어도 두 가지 이유가 있습니다 :

여러 서버를 사용하는 경우, 당신은

기본 PHP 세션 파일을 사용하여 두 서버 모두에 대한 공통 세션 저장이 필요

, 그래서 가능한 최대 성능은 디스크 I/O

3.Using 캐시 종속성 체인

YII 많은 캐시 백엔드를 지원하지만 정말 YII 캐시 유연한 종속성과 의존성 체인 지원이다 무엇이에 의해 제한됩니다. 캐시 된 정보는 언제든지 변경 될 수 있기 때문에 한 시간 동안 단순히 데이터를 캐시 할 수없는 상황이 있습니다.

이 레시피에서는 전체 페이지를 캐시하는 방법과 업데이트 된 데이터를 항상 가져 오는 방법을 보여줍니다. 페이지는 대시 보드 유형으로 추가 된 5 개의 최신 기사와 계정에 대해 계산 된 합계가 표시됩니다.작업은 추가 된대로 편집 할 수 없지만 기사는 편집 할 수 있습니다. YII 응용 프로그램을 배포하기위한 가장 좋은 방법을 모두 적용하고 여전히 대부분의 아마 다음, 원하는 성능이없는 경우

YII

를 사용하여 응용 프로그램을 4.Profiling, 일부 병목 현상이있다 응용 프로그램 자체 이러한 병목 현상을 처리하는 동안의 주된 원칙은 무엇이든 취하지 않아야하며 항상 최적화하기 전에 코드를 테스트하고 프로파일 링해야한다는 것입니다.

+0

PHP 세션의 기본 문제는 디스크 I/O가 아니라 블로킹 (blocking)이라는 사실입니다. –

1

일반 PHP Mysql 성능 터닝으로 이동하십시오.

1) 데이터베이스 서버의 부하를 줄임으로써 동적 웹 애플리케이션을 가속화하는 데 도움이 Memcache

Memcahced 오픈 소스 분산 메모리 오브젝트 캐싱 시스템.

2) MySQL Performance Tuning

3) PHP

관련 문제