1. ホーム
  2. performance

[解決済み] Laravelは本当にこんなに遅いのか?

2023-03-05 22:58:13

質問

Laravelを使い始めたばかりです。まだほとんどコードを書いていないのですが、ページの読み込みに1秒近くかかっています

私のフレームワークレスアプリやNodeJSアプリが〜2msで済むのに、これはちょっとショックです。Laravelは何をしているのでしょうか?これは通常の動作ではないのでしょうか?微調整が必要なのでしょうか?

どのように解決するのですか?

Laravelは ではなく 実際に その は遅いです。500 ~ 1000 ミリ秒は不合理で、私はデバッグ モードで 20 ミリ秒まで下げました。

問題は、Vagrant/VirtualBox + 共有フォルダーでした。このようなパフォーマンスヒットが発生するとは思いませんでした。Laravel には非常に多くの依存関係があり (~280 ファイルをロード)、これらのファイルの読み取りがそれぞれ遅いため、本当にすぐに累積してしまうのだと思います。

kreeves が正しい方向性を示してくれました。 このブログの記事 には、Vagrant 1.5 の新機能として、共有フォルダを使うのではなく、ファイルを VM に rsync できることが書かれています。

Windows にはネイティブの rsync クライアントはありません。 cygwin . それをインストールし、Net/rsyncをオフにすることを確認してください。追加 C:\cygwin64\bin をパスに追加してください。[または、Win10/Bashでインストールする]。

Vagrantが新機能を紹介 . 私はPuphetを使っているので、私のVagrantfileはちょっと変な感じになっています。私はこのように見えるように微調整する必要がありました。

  data['vm']['synced_folder'].each do |i, folder|
    if folder['source'] != '' && folder['target'] != '' && folder['id'] != ''
      config.vm.synced_folder "#{folder['source']}", "#{folder['target']}", 
        id: "#{folder['id']}", 
        type: "rsync",
        rsync__auto: "true",
        rsync__exclude: ".hg/"
    end
  end

設定が完了したら、今度は vagrant up . すべてが順調にいけば、あなたのマシンは起動し、すべてのファイルがコピーされるはずです。次に vagrant rsync-auto をターミナルで実行して、ファイルを最新の状態に保つ必要があります。遅延が少し発生しますが、ページ読み込みが 30 倍速くなるのですから、それだけの価値はあります!


PhpStormを使用している場合、その自動アップロード機能は、rsyncよりもさらに優れています。PhpStormは一時ファイルを大量に作成するので、ファイルウォッチャーがつまずく可能性がありますが、アップロード自体を処理させれば、うまく機能します。


もう一つの選択肢は lsyncd . 私はこれを Ubuntu ホスト -> FreeBSD ゲストで使用して大きな成功を収めました。Windows ホストではまだ試していません。