私はダーツであなたのアプリケーションがスナップショットのために10倍速く起動できることを読んだ。誰がそれが本当に何であり、どのように機能するのかを説明することはできますか?どのようなアプリケーションでスナップショットを使用していますか?dartのスナップショットの概念は何ですか?
答えて
ダーツのスナップショットは、ほぼ即時のアプリケーション起動を可能にする意味でSmalltalk imagesのようなものです。ただし、スナップショットはSmalltalkイメージとは異なり、プログラム状態を保存しません。
これは、本来的に遅く、デスクトップシステムよりもメモリによって制限されているため、モバイルデバイスが遅い場合に特に役立ちます。その理由と、バッテリの使用が不要なプログラムを閉じることを私たちに要求するという事実は、起動速度を重要なものにしています。
Dartは、Smalltalkのイメージシステムに似ているヒープスナップショット機能を使用して、この低速起動の問題に対処しています。アプリケーションのヒープはトラバースされ、すべてのオブジェクトは単純なファイルに書き込まれます。注:現時点では、Dartの配布には、Dart VMを起動し、アプリケーションのコードをロードし、mainを呼び出す直前にヒープのスナップショットを取得するツールが同梱されています。 Dart VMは、そのようなスナップショットファイルを使用してアプリケーションをすばやくロードできます。
スナップショット機能は、Dart Isolates(SnapshotWriterでシリアル化)間で送信されるオブジェクトグラフをシリアル化するためにも使用されます。
現在、私はスナップショットを開始したり、スナップショットを処理する方法について知らない。将来的には、Webサーバーからスナップショットファイルを提供し、ブラウザのDart VMによって即座に処理されるようにすることが可能になると期待しています。
スナップショット形式自体はクロスプラットフォームなので、32ビット、64ビットのマシンなどで動作します。フォーマットは、ポインタ修正のような余分な作業を最小限に抑えることに重点を置いてメモリに読み込むのが素早くできるように作られています。
ここsnapshot.ccのソースコードがあります:http://code.google.com/p/dart/source/browse/trunk/dart/runtime/vm/snapshot.cc
とテスト:http://code.google.com/p/dart/source/browse/trunk/dart/runtime/vm/snapshot_test.cc
それはない Aだからだから、10倍、アプリケーションの起動を高速化できる理由がありますJavaScriptのようなソースコードをそのまま送信し、後でゆっくりと処理します。
あなたはどこで使いたいですか?どこでも可能です。サーバー側では、基本的にはすでにあなたのために起こっています(本当に重要ではありません)。クライアント側では、はまだではありません。私が理解しているように、これらのスナップショットをブラウザに提供して即座に起動することは可能ですが、今のところ利用できないので、待つ必要があります。
- 1. siddhiスナップショットの概念を理解する
- 2. CNTKTextFormatDeserializerの概念とは何ですか?
- 3. オブジェクトパーシスタンスの概念は何ですか?
- 4. MavenのCI/CD用のスナップショットの概念はありますか?
- 5. 概念とは何ですか?
- 6. .NETでのアセンブリの概念は何ですか?
- 7. sqlite概念からcoredata概念へ?
- 8. ここで使用するpreg_matchの概念は何ですか?
- 9. 概念的には、Android StudioのLogcatとは何ですか?
- 10. HEAD、master、originのgitの概念は何ですか?
- 11. FCN(セマンティックセグメンテーション)用のミニバッチの概念は何ですか?
- 12. Androidのデータベースの概念は何ですか?
- 13. このURL文字列の概念とは何ですか?
- 14. Bスプライン曲線の次数の概念は何ですか?
- 15. コトリンの意図の概念は何ですか?
- 16. binとgenの概念の違いは何ですか?
- 17. Javaでhandleの概念は何ですか?
- 18. 論理データモデルと概念データモデルの違いは何ですか?
- 19. express req.localsとres.localsの概念的なベストプラクティスは何ですか?
- 20. ドメインモデルと概念モデルの違いは何ですか
- 21. Anecessと同等の概念を持つAnstatesは何ですか?
- 22. 分散システムにおけるAmbassadorの概念は何ですか?
- 23. Google Bigtableはマルチテナントデータベースの概念ですか?
- 24. ピボットテーブルの概念
- 25. インデックスアクセスの概念
- 26. メークファイルの概念
- 27. クラスの概念
- 28. プレーフレームワークの概念
- 29. 概念
- 30. DartアプリケーションでReduxの概念を適用するにはどうすればよいですか?
スナップショットを使用してdart2jsをロードすると、スタートアップの改善が10倍になることに注意してください。 –
@SethLaddあなたは何を意味しているのですか?または、おそらく私の答えを編集する - これは結局wikiです:) –
初期テストでは、スナップショットからdart2jsを開始すると、ソースコードからdart2jsを開始するよりも10倍高速です。まだ早いですが、データは有望です。 –