私はダーツであなたのアプリケーションがスナップショットのために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. オブジェクトパーシスタンスの概念は何ですか?
- 2. 概念とは何ですか?
- 3. sqlite概念からcoredata概念へ?
- 4. .NETでのアセンブリの概念は何ですか?
- 5. HEAD、master、originのgitの概念は何ですか?
- 6. ドメインモデルと概念モデルの違いは何ですか
- 7. 論理データモデルと概念データモデルの違いは何ですか?
- 8. Google Bigtableはマルチテナントデータベースの概念ですか?
- 9. クラスの概念
- 10. インデックスアクセスの概念
- 11. メークファイルの概念
- 12. 概念
- 13. 移転の概念は何を意味していますか?
- 14. この概念は何と呼ばれていますか?
- 15. CFSでのvruntimeの概念
- 16. java threadsの概念
- 17. Windowsワークフローランタイムの概念
- 18. UNIXブロックバッファキャッシュの概念
- 19. HTMLセキュリティの概念
- 20. C++スレッドの概念
- 21. Infinityループスライダの概念
- 22. JPAリレーションシップマッピングの概念
- 23. Javaインターフェイスの概念
- 24. 中レベルの意味概念ですか?
- 25. MVCで従来の「ページ」概念を定義するものは何ですか?
- 26. 概念クラス図
- 27. 概念:APIレベルテスト
- 28. LLVMのコンパイル単位の正しい抽象概念は何ですか?
- 29. Magento:Quote ItemとQuote Address Itemの概念の違いは何ですか?
- 30. TDDの概念のレール
スナップショットを使用してdart2jsをロードすると、スタートアップの改善が10倍になることに注意してください。 –
@SethLaddあなたは何を意味しているのですか?または、おそらく私の答えを編集する - これは結局wikiです:) –
初期テストでは、スナップショットからdart2jsを開始すると、ソースコードからdart2jsを開始するよりも10倍高速です。まだ早いですが、データは有望です。 –