>  기사  >  백엔드 개발  >  PHP laravel5 프레임워크의 프로그램 최적화 기술(권장)

PHP laravel5 프레임워크의 프로그램 최적화 기술(권장)

不言
不言원래의
2018-07-25 17:07:181575검색

Laravel 프레임워크의 성능은 결코 좋지 않았습니다. 따라서 PHP laravel 프레임워크를 배울 때 Laravel 프로그램의 최적화를 마스터해야 합니다. 다음으로 최고의 개발 솔루션과 최적화 기술을 공유하겠습니다.

다음은 간단한 목록입니다:

구성 정보 캐시 장인 config:cache

라우트 캐시 장인 경로:cache

클래스 맵 로드 최적화 장인 최적화

자동 로드 최적화 작곡가 덤프자동로드

Memcached를 사용하여 세션 구성/세션 저장 .php

전문 캐시 드라이버 config/cache.php 사용

데이터베이스 요청 최적화

데이터 세트에 대한 캐싱 로직 작성

JIT(Just-In-Time 컴파일러) 사용(예: HHVM, OpCache

Front-end) Elixir와 병합된 리소스

1. 구성 정보 캐시

다음 Artisan 내장 명령을 사용하여 config 폴더의 모든 구성 정보를 하나의 파일로 병합하여 런타임에 로드되는 파일 수를 줄입니다:

php artisan config:cache

위 명령은 bootstrap/cache/config.php 파일을 생성합니다. 다음 명령을 사용하여 구성 정보 캐시를 취소할 수 있습니다:

php artisan config:clear

이 명령은 부트스트랩을 삭제합니다. /cache/config.php 파일입니다.

참고: 구성 정보 캐시는 업데이트 시 자동으로 다시 로드되지 않습니다. 따라서 개발 중에는 구성 정보 캐시를 끄는 것이 일반적으로 프로덕션 환경에서 사용되며 Envoy 작업 실행기와 함께 사용할 수 있습니다.

2. 경로 캐시는 라우터의 등록 효율성을 효과적으로 향상시킬 수 있습니다. 다음 명령을 사용할 수 있습니다.

php artisan Route:cache

bootstrap /cache/routes.php 파일을 생성합니다. 라우트 캐시는 라우팅 익명 함수 작성 로직을 지원하지 않습니다.

다음 명령을 사용하여 경로 캐시를 지울 수 있습니다:

php artisan Route:clear

이 명령이 하는 일은 bootstrap/cache/routes.php 파일을 삭제하는 것입니다.

참고: 경로 캐시는 업데이트 시 자동으로 다시 로드되지 않습니다. 따라서 개발 중에는 경로 캐시를 끄는 것이 일반적으로 프로덕션 환경에서 사용되며 Envoy 작업 실행기와 함께 사용할 수 있습니다.

3. 클래스 매핑 로딩 최적화

optimize 명령은 일반적으로 로드되는 클래스를 하나의 파일로 병합하여 파일 로딩을 줄여 작업 효율성을 향상시킵니다.

php artisanoptim --force

은 부트스트랩을 생성합니다/ 캐시 파일이 두 개 있습니다/ 컴파일된.php 및 bootstrap/cache/services.json.

config/compile.php 파일을 수정하여 병합할 클래스를 추가할 수 있습니다.

프로덕션 환경에서는 --force 매개변수를 지정할 필요가 없으며 파일이 자동으로 생성됩니다.

클래스 맵 로딩 최적화를 지우려면 다음 명령을 실행하세요:

php artisanclear-compiled

이 명령은 위의 최적화로 생성된 두 파일을 삭제합니다.

참고: 이 명령은 php artisan config:cache 후에 실행해야 합니다. 왜냐하면optim 명령은 구성 정보(예: config/app.php 파일의 공급자 배열)를 기반으로 파일을 생성하기 때문입니다.

4. 자동 로딩 최적화

이 명령은 Laravel 프로그램뿐만 아니라 Composer를 사용하여 빌드된 모든 프로그램에 적용됩니다. 이 명령은 PSR-0과 PSR-4를 클래스 매핑 테이블로 변환하여 클래스 로딩 속도를 향상시킵니다.

composer dumpautoload -o

참고: 이 작업은 php artisan Optimize --force 명령에서 이미 수행되었습니다.

5. Memcached를 사용하여 세션 저장

모든 Laravel 요청은 세션 저장 방법을 수정하면 프로그램 효율성을 효과적으로 향상시킬 수 있습니다. config/session.php로 수정하는 것이 좋습니다. Memcached 또는 Redis와 같은 전문 캐싱 소프트웨어:

'driver' => 'memcached',

6. 전문 캐시 드라이버 사용

"캐시"는 애플리케이션의 실행 효율성을 향상시키는 마법의 무기 중 하나입니다. Redis나 Memcached와 같은 전문적인 캐시 시스템으로 전환하는 것이 좋습니다. 데이터베이스 캐시를 사용하는 것은 권장되지 않습니다.

'default' => 'redis',

7. 데이터베이스 요청 최적화

데이터 연관 모델을 읽을 때 지연된 사전 로드 및 사전 로드를 사용하세요.

Laravel Debugbar 또는 Clockwork를 사용하여 각 페이지의 총 개수에 주의하세요. 데이터베이스 요청 수;

여기에서는 Laravel과 관련된 내용만 다룹니다. 데이터 최적화에 대한 기타 내용은 직접 확인하시기 바랍니다.

8. 데이터 세트에 대한 캐싱 로직 작성

Laravel에서 제공하는 캐시 계층 작업을 올바르게 사용하여 데이터베이스에서 가져온 데이터 세트를 캐시하여 데이터베이스에서 실행되는 전문 캐싱 소프트웨어를 사용할 수 있습니다. 또한 데이터는 데이터베이스보다 훨씬 빠르게 읽혀집니다.

$posts = Cache::remember('index.posts', $minutes = 30, function()
{
return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();
});

기억하세요 데이터 연관 모델도 캐시되어 있으니 얼마나 편리할까요.

9. JIT(Just-In-Time) 컴파일러

HHVM 및 OpCache를 사용하면 아무런 수정 없이 애플리케이션의 성능을 쉽게 50% 이상 향상할 수 있습니다. 실험에 대해서는 자세한 내용은 OpCache 사용을 참조하세요. PHP 5.5+ 프로그램 성능을 향상시킵니다.

10. 프런트엔드 리소스 병합

최적화 기준으로 페이지는 CSS 파일 1개, JS 파일 1개만 로드해야 하며 파일은 CDN으로 쉽게 전송할 수 있어야 하며 수정 시 파일 이름도 변경되어야 합니다.

관련 권장 사항:

Laravel 5의 성능을 향상하기 위한 몇 가지 실용적인 팁

Laravel 프레임워크 라우팅 구성 요약 및 설정 팁, laravel 프레임워크

위 내용은 PHP laravel5 프레임워크의 프로그램 최적화 기술(권장)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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