読み込み時間が非常に長い-リクエストが非同期で実行されていません。マングース

ロルザ

概要概要

Vue、Express、MongoDB(mongoose ORM)を使用してアプリケーションを構築しました。ランディングページをロードすると、さまざまなデータビットに対して一連のGETリクエストが行われます。読み込み時間は非常に長く、特定のルートで22秒も記録しました。すべてが非同期で実行されるようにロジックで指定しているにもかかわらず、リクエストが順番に実行されていると私は信じています。

.lean()メソッドを使用するだけでなく、リクエストから返されるオブジェクトのサイズを縮小してみましたこれらの試みは数秒短縮されましたが、全体的な問題はリモートで分類されていません。時間はまだ愚かな高いです。例を挙げると:

これから:

// Method to find all users
var users = await User.find({});

に:

// Method to find all users
var users = await User.find({}, "username, uid").lean();

問題のページには、約5つの主要コンポーネントがあります。各コンポーネントはgetリクエストを行っています。これらの1つはチャット列であり、そのコードは次のとおりです。

ChatCol.vue

beforeMount () {
    this.$store.dispatch('retrieve_chat')
}

Store.js(Vuexストアを使用しています)

retrieve_chat (context) {
            return new Promise((resolve, reject) => {
                axios({
                    url: api.dev + 'api/v1/chat',
                    method: 'GET',
                })
                .then(res => {
                    context.commit('set_chat', res.data)
                    resolve(res);
                }).catch(err => {
                    // alert(err)
                    reject(err);
                })
            })
        },

この形式のリクエストは、すべてのコンポーネントで行われています。問題のページにあるそれらの約5。

バックエンド/サーバーコード

行われているリクエストにコンテキストを与えるため。クライアントはルートにヒットします ' http:// localhost:3000 / api / v1 / chat '

サーバーでリクエストを行うコードは次のとおりです。


var Chat = require("../models/ChatMessage");

module.exports = {
    // LIMIT CHAT TO 100 MESSAGES
    async get_chat(req, res) {
        Chat.find({}, function(err, messages) {
            if (err) {
                return res.status(500).send({
                    message: "Interval Server Error", 
                    type: "MONGO_CHAT_DOCUMENT_QUERY", 
                    err: err, 
                })
            }

            if (!messages) {
                return res.status(400).send({
                    message: "Resource not found", 
                    type: "MONGO_CHAT_DOCUMENT_QUERY", 
                    details: "!messages - no messages found", 
                })
            }

            messages.reverse();
            return res.status(200).json({
                messages, 
            });
        }).sort({"_id": -1}).limit(30);
    },
}

Chrome開発ツールの[ネットワーク]タブを見ると、これがリクエストの表示方法です。長く曲がりくねった投稿をお詫びします、私は文字通りこれを引き起こしているものがわかりません

重要な注意点:

mongodbには、データを変更するときにロックするというこの機能があると言われました。そうかもしれないと思いましたが、変更は行われていません。かなり大きなリクエストではありますが、並行して発生するのは3/4のgetリクエストだけですが、それほど長くはかからないはずです。

ネットワークタブのスクリーンショット:

ここに画像の説明を入力してください

(失敗した要求、および重複した名前付き要求の一部は無視してください)

StackOverflowsempaisを助けてください。これは非常に大きなアプリケーションであり、問​​題が正確に何であるかはわかりません。そのため、詳細を見逃した場合は、お詫びします。明確にする必要があるものはすべて明確にします。

ロルザ

以前に放棄され、実装が不十分な画像アップロード機能からの大量のbase64エンコードデータが、各チャットメッセージやその他の場所に保存されていたため、大量のデータが読み込まれ、最終的には膨大な読み込み時間が発生しました。

ニール・ランありがとう

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

読み込みに非常に長い時間がかかるWebページ

分類Dev

rails chartkickgoogleチャートの読み込み時間が非常に長い

分類Dev

ストーリーボードコントローラーの読み込み時間が非常に長い

分類Dev

Ember.jsアプリケーションの読み込み時間が非常に長い

分類Dev

PythonとSQLServerを使用したETLプロセスの読み込みに非常に長い時間がかかる

分類Dev

HDFSからESへのデータの読み込みに非常に長い時間がかかる

分類Dev

コード後のページの読み込み時間が非常に遅い

分類Dev

Gradle:ダウンロードgradleに「非常に長い時間」がかかり、activity_main.xmlに「読み込み中」と表示され続ける

分類Dev

Laravelでデータをフェッチしている間、APIの読み込み時間が非常に遅い

分類Dev

WordPressのカテゴリはページの読み込みに非常に時間がかかっています

分類Dev

Angularでは、実行時間の長いコードが終了する前に読み込みスピナーを表示できません

分類Dev

なぜColdFusionの起動、解析、コンパイル、読み込み、シャットダウンの読み込み時間が非常に遅いのですか?

分類Dev

Javascript:ページの読み込みが完了し、スクリプトが非同期を読み込んでいるときに関数を実行します

分類Dev

Razor / Syncfusion:非同期ページの読み込み時に、アクションを実行しない限り、treedataにデータが入力されません

分類Dev

非同期タスクがバックグラウンドで実行されていませんか?

分類Dev

非同期タスクがバックグラウンドで実行されていませんか?

分類Dev

Meteor の最初のページの読み込みが非常に長い

分類Dev

RailsWebアプリの読み込み時間が途方もなく長い

分類Dev

ガトリングリクエストが実行されていません

分類Dev

PHP-fopenを使用した(非常に)長い読み込み

分類Dev

スピナーdivの読み込みが時間内にレンダリングされない

分類Dev

Python ValueError:プールが非同期マルチプロセッシングで実行されていません

分類Dev

Androidアプリでビットマップの読み込みが非常に長い

分類Dev

反応:ボタンonClick関数はページの読み込み時に実行されていますが、クリックしていません

分類Dev

読み込み時にサイトで画像が正しくフォーマットされていません

分類Dev

GeoChart:マーカーの読み込みが非常に遅い

分類Dev

ビットマップの読み込みが非常に遅い

分類Dev

長い読み込み時間の送信時にボタンのテキストを更新する

分類Dev

ページの読み込み時にスクリプトが正しく実行されない

Related 関連記事

  1. 1

    読み込みに非常に長い時間がかかるWebページ

  2. 2

    rails chartkickgoogleチャートの読み込み時間が非常に長い

  3. 3

    ストーリーボードコントローラーの読み込み時間が非常に長い

  4. 4

    Ember.jsアプリケーションの読み込み時間が非常に長い

  5. 5

    PythonとSQLServerを使用したETLプロセスの読み込みに非常に長い時間がかかる

  6. 6

    HDFSからESへのデータの読み込みに非常に長い時間がかかる

  7. 7

    コード後のページの読み込み時間が非常に遅い

  8. 8

    Gradle:ダウンロードgradleに「非常に長い時間」がかかり、activity_main.xmlに「読み込み中」と表示され続ける

  9. 9

    Laravelでデータをフェッチしている間、APIの読み込み時間が非常に遅い

  10. 10

    WordPressのカテゴリはページの読み込みに非常に時間がかかっています

  11. 11

    Angularでは、実行時間の長いコードが終了する前に読み込みスピナーを表示できません

  12. 12

    なぜColdFusionの起動、解析、コンパイル、読み込み、シャットダウンの読み込み時間が非常に遅いのですか?

  13. 13

    Javascript:ページの読み込みが完了し、スクリプトが非同期を読み込んでいるときに関数を実行します

  14. 14

    Razor / Syncfusion:非同期ページの読み込み時に、アクションを実行しない限り、treedataにデータが入力されません

  15. 15

    非同期タスクがバックグラウンドで実行されていませんか?

  16. 16

    非同期タスクがバックグラウンドで実行されていませんか?

  17. 17

    Meteor の最初のページの読み込みが非常に長い

  18. 18

    RailsWebアプリの読み込み時間が途方もなく長い

  19. 19

    ガトリングリクエストが実行されていません

  20. 20

    PHP-fopenを使用した(非常に)長い読み込み

  21. 21

    スピナーdivの読み込みが時間内にレンダリングされない

  22. 22

    Python ValueError:プールが非同期マルチプロセッシングで実行されていません

  23. 23

    Androidアプリでビットマップの読み込みが非常に長い

  24. 24

    反応:ボタンonClick関数はページの読み込み時に実行されていますが、クリックしていません

  25. 25

    読み込み時にサイトで画像が正しくフォーマットされていません

  26. 26

    GeoChart:マーカーの読み込みが非常に遅い

  27. 27

    ビットマップの読み込みが非常に遅い

  28. 28

    長い読み込み時間の送信時にボタンのテキストを更新する

  29. 29

    ページの読み込み時にスクリプトが正しく実行されない

ホットタグ

アーカイブ