Laravel 성능 최적화에 필요한 방법

1. 경로 캐시

Laravel 경로는 route.php 파일에 캐시되며 다음에 경로가 필요할 때 경로 파일 대신 캐시에 액세스합니다. 이렇게 하면 요청을 신속하게 라우팅하여 사이트 성능이 향상되고 사이트를 더 매끄럽게 만들고 더 빠르게 로드할 수 있는 쉬운 방법이 될 수 있습니다.

php artisan route:cache  //开启路由缓存
php artisan route:clear  //清除路由缓存

2. Artisan 명령의 효과적인 사용

캐싱 경로 및 구성은 이를 효율적으로 사용하여 애플리케이션의 성능을 향상시킬 수 있습니다.

php artisan config:cache
php artisan route:cache

To: Artisan Optimize (在 Laravel 5.5 中被移除,在之前的版本中可以工作)

php artisan optimize --force

php artisan config:clear
php artisan route:cache
php artisan view:clear

3. 직접 데이터 가져오기

 라라벨에서 쿼리를 실행할 때, 라라벨은 쿼리를 느리게 실행합니다(지연 로딩), 필요할 때만 데이터를 가져옵니다. 이 지연 로딩 동작은 실행되는 쿼리 수를 늘리는 동시에 애플리케이션의 성능을 저하시킵니다. 지연 로딩을 사용하면 결과를 찾기 위해 N+1 쿼리를 실행하게 됩니다.

$books = Book::all();
foreach ($books as $book) {
  echo $book->author->name;
}

쿼리는 for 루프가 실행될 때마다 실행됩니다. 이 문제를 해결하기 위해 Laravel은 데이터를 직접 로드할 수 있도록 하여 쿼리 실행 시간을 늘리고 쿼리 수를 줄입니다.

$books = Book::with('author')->get();
foreach ($books as $book) {
  echo $book->author->name;
}

즉시 로드하지 않으면 결과를 찾기 위해 N+1 쿼리를 실행하게 됩니다.

$books = Book::all();
foreach ($books as $book) {
  echo $book->author->name;
 }

for 루프가 실행될 때마다 쿼리가 실행되는데, 이 문제를 해결하기 위해 Laravel은 관련 데이터의 Eager Loading을 허용하여 쿼리 실행 시간을 늘리고 쿼리 시간을 줄입니다.

$books = Book::with('author')->get();
foreach ($books as $book) {
  echo $book->author->name;
}

4. 작곡가 최적화

Composer로 패키지를 설치할 때  --no-dev 및  -o 매개변수를 사용하여 dev 종속성을 제거하고 자동 로더를 최적화하고 디렉토리의 성능을 개선하십시오. 개발 종속성 없이 공식 배포판을 가져오고 패키징하기 위한 풀 요청일 뿐입니다.

composer install --prefer-dist --no-dev -o

5. 압축 바인딩 구성

Laravel 믹스는 여기에서 도움이 될 수 있습니다. 모든 CSS를 컴파일하고 단일  app.css 파일을 제공하여 여러 HTTP 요청을 단일 요청으로 줄입니다. laravel-mix-purgecss 패키지를 사용하여 프로젝트에서 사용하지 않는 CSS를 제거할 수도 있습니다.

npm install laravel-mix-purgecss --save-dev
# or
yarn add laravel-mix-purgecss --dev

//在你的文件 webpack.mix.js 中

const mix = require('laravel-mix');
require('laravel-mix-purgecss');
mix.js('resources/js/app.js', 'public/js').sass('resources/sass/app.scss', 'public/css').purgeCss();

6. 작업 대기열 사용

예: 메일 보내기, 파일 업로드, 파일 다운로드 등

7. 캐시 또는 세션 드라이버

에서  드라이브 키를 변경하십시오. 캐시의 경우  파일에서 드라이브 키를 변경할 config/session.php 수 있습니다  .config/cache.php

8. 데이터베이스 인덱스 생성

마이그레이션을 사용하여 인덱스 만들기

Schema::create('users', function (Blueprint $table) {

   $table->string('email')->index();

});

9. JIT 컴파일러 활용

Laravel은 Zend 엔진의 JIT(Just-In-Time) 컴파일러를 사용하여 코드를 빠르게 컴파일할 수 있습니다.

10. 이미지 압축

Laravel Mix를 사용하는 경우 이미지를 컴파일할 때 ImageMin과 같은 NPM 패키지를 사용하는 것이 좋습니다.
매우 큰 이미지의 경우 먼저 TinyPNG를 사용하여 이미지를 압축한 다음 ImageMin을 사용하여 최대한 압축합니다.

11. 캐싱 보기


뷰 캐시는 컴파일된 블레이드 템플릿을 저장하여 프로젝트 속도를 높입니다.
다음 artisan 명령을 사용하여 모든 보기를 수동으로 컴파일하고 성능을 최적화할 수 있습니다.

php artisan view:cache

php artisan view:clear

12. 사용하지 않는 서비스 삭제

config/app.php Laravel에서 제공하는 서비스 컨테이너 프레임워크를 사용하여 서비스를 쉽게 주입하고 파일의  배열 에 서비스 이름을 추가  providers[] 하고 사용 중인 서비스만 열면 됩니다. 사용하지 않는 다른 모든 서비스는 중지해야 합니다. 이러한 서비스는 config/app.php 파일에서 주석 처리하여 중지할 수 있습니다. 이렇게 하면 애플리케이션을 시작하고 성능을 개선하는 데 걸리는 시간이 단축됩니다.

13. CDN을 사용하여 정적 콘텐츠 로드

CDN은 여러 정적 페이지를 캐시하는 데 도움이 될 수 있습니다.

14. CSS 및 JS 축소

CSS 및 JavaScript 코드를 압축하고 축소할 수 있는 Laravel-packer를 사용할 수 있습니다. 원하는 경우 이미지 크기를 조정하여 축소판을 생성할 수도 있습니다.

15. 개발 종속성 제거

컴포저를 사용하여 불필요한 종속성 제거

composer install --prefer-dist --no-dev -o

Supongo que te gusta

Origin blog.csdn.net/weixin_43695488/article/details/126306000
Recomendado
Clasificación