backend(mBaaS)。データストアデータストアはネットワークアクセスを伴うので、大量のデータを処理しようと思うとネットワークレイテンシーがボトルネックになってきます。そこで今回はデータの追加処理(更新、削除も)高速化するためのアイディアを紹介します。課題まとめPromiseとasync/awaitJavaScriptに限りませんが、最近のネットワーク処理ではasync/awaitが使われるようになっています。非同期処理が同期処理的に書けて便利な反面、処理が終わらないと次のステップに進めないという問題があります。100件のデータを追加する処理において、次のような書き方ができます。.save();}どちらもデータを100件追加する処理なのは変わりませんが、速度では以下のように大幅に違います(単位はms)。Promise3,039async/await18,620Promiseの方が6倍近く速いという結果になっています。理由この速度の違いは、Promise処理の場合はループの時点ですでに次の処理に入っているということです。Promise.allで全処理の完了を待っています。それに対してasync/awaitの場合は一つの保存処理が終わるまでループが進みません。そのため、遅くなります。課題Promiseの場合、処理順番は保証されません。そのため、データの並び順はバラバラになります。順番を付けたいならば、別途数字のカラムで指定するようにしてください。まとめ大量のデータを一気に保存したい場合にはPromiseを使った方が良いでしょう。async/awaitは見やすくて便利ですが、ループ処理ではあまり向いていないようです。ユーザがストレスにならないよう使い分けて実装してください。篤司NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。先日、スクリプト機能がバージョンアップしてNode.jsが8.11.3を...2018-10-16地図アプリのベースに。Service)とは、スマートフォンアプリでよく利用される汎用的な機能をSDKとクラウドから提供するサービスです。backendのちょっと便利な使いかた・非公式SDKやアプリ開発の関連情報などをお届けするブログです。※記事内には、サポート対象外の内容も含みます。本ブログではコメント機能を公開しておりません。アプリ開発を行う上での課題解決には、ユーザーコミュニティやもくもく会などもご活用ください。LIMITEDスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。