성능은 항상 Laravel 프레임워크에 대한 비판이었습니다. 따라서 Laravel 프로그램 튜닝은 반드시 배워야 할 기술입니다.
다음으로 몇 가지 개발 모범 사례 www.itxdl.cn과 튜닝 팁을 공유하겠습니다. 다른 제안 사항이 있으면 토론을 위해 메시지를 남겨주세요.
간단한 목록은 다음과 같습니다.
구성 정보 캐시 artisan config:cache
루트 캐시 장인 루트:cache
클래스 맵 로딩 최적화 장인 최적화
자동 로딩 최적화 작곡가 dumpautoload
Memcached를 사용하여 세션 config/session.php 저장
전문 캐시 드라이버 config/cache.php 사용
데이터베이스 요청 최적화
데이터 세트에 대한 캐싱 논리 쓰기
JIT(Just-In-Time 컴파일러) 사용 , 예: HHVM, OpCache
프런트엔드 리소스 병합 Elixir
1 . 구성 정보 캐시
다음 Artisan 내장 명령을 사용하여 config 폴더의 모든 구성 정보를 하나의 파일로 병합하여 파일 수를 줄입니다. 런타임 시 로드:
php artisan config:cache
위 명령은 다음을 생성합니다. bootstrap/cache/config.php 파일, 사용할 수 있습니다. 다음 명령은 구성 정보 캐시를 취소하는 데 사용됩니다:
php artisan config:clear
이 명령이 하는 일은 bootstrap/cache/config.php 파일을 삭제하는 것입니다.
참고: 구성 정보 캐시는 업데이트 시 자동으로 다시 로드되지 않으므로 일반적으로 개발 중에는 구성 정보 캐시를 끄는 것이 좋습니다. 프로덕션 환경에서 사용됩니다. Envoy 작업 실행기와 함께 사용할 수 있습니다.
2. 경로 캐시
경로 캐시는 라우터의 등록 효율성을 효과적으로 향상시킬 수 있습니다. 대규모 애플리케이션에서 그 효과가 더욱 분명해지면 다음 명령을 사용할 수 있습니다:
php artisan Route:cache
위 명령은 bootstrap/cache/routes.php 파일을 생성합니다. 라우트 캐시는 라우팅 익명 함수 작성 로직을 지원하지 않습니다.
다음 명령을 사용하여 경로 캐시를 지울 수 있습니다:
php artisan Route:clear
이 명령은 bootstrap/cache/routes.php 파일을 삭제합니다.
참고: 경로 캐시는 업데이트 시 자동으로 다시 로드되지 않으므로 개발 중에는 경로 캐시를 끄는 것이 일반적입니다. 프로덕션 환경에서 사용할 수 있으며 Envoy 작업 실행기와 함께 사용할 수 있습니다.
3. 클래스 매핑 로딩 최적화
optim 명령은 일반적으로 로드되는 클래스를 파일 로딩을 줄여 작업 효율을 높이는 파일:
php artisanoptim --force
bootstrap/cache/compiled.php와 bootstrap/cache/services.json이라는 두 개의 파일이 생성됩니다.
config/compile.php 파일을 수정하여 병합할 클래스를 추가할 수 있습니다.
프로덕션 환경에서는 --force 매개변수를 지정할 필요가 없으며 파일이 자동으로 생성됩니다.
클래스 맵 로딩 최적화를 지우려면 다음 명령을 실행합니다:
php artisan Clear-compiled
이 명령은 위의 최적화로 생성된 두 파일을 삭제합니다.
참고: 이 명령은 php artisan config:cache 다음에 실행해야 합니다. 왜냐하면 최적화 명령은 구성 정보(예: 구성 공급자)를 기반으로 하기 때문입니다. /app.php 파일 배열)을 사용하여 파일을 생성합니다.
4. 자동 로딩 최적화
이 명령은 Laravel 프로그램에만 적용되는 것이 아닙니다. , 또한 작곡가를 사용하여 구축된 모든 프로그램에도 적용됩니다. 이 명령은 PSR-0과 PSR-4를 클래스 매핑 테이블로 변환하여 클래스 로딩 속도를 향상시킵니다.
Composer dumpautoload -o
참고: php artisanoptim --force 명령은 다음과 같습니다. 작업이 이미 완료되었습니다.
5. Memcached를 사용하여 세션 저장
모든 Laravel 요청은 세션을 생성합니다. 세션의 저장 방법을 수정하면 프로그램 효율성을 효과적으로 향상시킬 수 있습니다. 세션의 구성 정보는 Memcached 또는 Redis와 같은 전문 캐싱 소프트웨어로 수정하는 것이 좋습니다.
'driver' => 'memcached',
6. 전문 캐싱 드라이버 사용
"캐싱"은 애플리케이션의 실행 효율성을 향상시키는 마법의 무기 중 하나입니다. 기본 캐시 드라이버는 파일 캐시와 같은 전문적인 캐싱 시스템으로 전환하는 것이 좋습니다. Redis 또는 Memcached는 데이터베이스 캐시를 사용하지 않는 것이 좋습니다. <🎜> 최적화
데이터 연관 모델을 읽을 때 지연 사전 로드 및 사전 로드를 사용하세요.
Laravel Debugbar 또는 Clockwork를 사용하여 각 페이지의 총 데이터베이스 요청 수에 주의하세요.
여기의 길이는 다음과 관련된 사항에만 기록됩니다. Laravel, 데이터 최적화에 관한 기타 사항 컨텐츠에 대해서는 기타 정보를 직접 확인하시기 바랍니다.
8. 데이터 세트에 대한 캐싱 로직 작성
Laravel의 합리적인 사용 캐싱 계층은 데이터베이스에서 가져온 데이터 세트를 캐시하여 데이터베이스에 대한 부담을 줄이는 역할을 합니다. 메모리에서 실행되는 전문 캐싱 소프트웨어는 데이터베이스보다 훨씬 빠르게 데이터를 읽을 수도 있습니다.
$posts = Cache::remember('index.posts', $ Minutes = 30, function()
{
return Post::with('댓글', '태그', '작성자', '서')- >whereHidden(0)->get();
});
기억하세요. 데이터 연관 모델도 캐시되어 있으므로 얼마나 편리합니까?
9. JIT 컴파일러를 사용하세요
HHVM과 OpCache는 모두 수정 없이 애플리케이션 성능을 50% 이상 쉽게 향상시킬 수 있습니다. PHPhub는 이전에 실험을 수행했습니다. 특히 OpCache를 사용하여 PHP 5.5 프로그램 성능 향상을 참조하세요.
10. 프런트 엔드 리소스 병합
최적화 기준으로 페이지 CSS, JS 파일만 불러와야 하며, 해당 파일은 쉽게 CDN으로 전송할 수 있어야 하며, 파일명은 수정에 따라 변경되어야 합니다.
~10가지 PHP 프로그램 Laravel 5 프레임워크 최적화 팁
성능은 항상 Laravel 프레임워크는 비판의 대상이므로 Laravel 프로그램 튜닝은 반드시 배워야 할 기술입니다.
다음으로 몇 가지 개발 모범 사례와 튜닝 기술을 공유하겠습니다. 다른 제안 사항이 있으면 토론을 위해 메시지를 남겨주세요.
간단한 목록은 다음과 같습니다.
구성 정보 캐시 artisan config:cache
루트 캐시 장인 루트:cache
클래스 맵 로딩 최적화 장인 최적화
자동 로딩 최적화 작곡가 dumpautoload
Memcached를 사용하여 세션 config/session.php 저장
전문 캐시 드라이버 config/cache.php 사용
데이터베이스 요청 최적화
데이터 세트에 대한 캐싱 논리 쓰기
JIT(Just-In-Time 컴파일러) 사용 예: HHVM, OpCache
프런트엔드 리소스 병합 Elixir
|