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