2012-12-12 7 views
27

MoSyncを使用してクロスプラットフォームのモバイルアプリケーションを開発しています。モバイルデバイスでBluetoothからデータを表示するためのJavaScriptチャートについては、非常に高い描画速度とパフォーマンスを備えたJavaScriptチャートAPIが必要です。データがWebviewに注入されるので、チャートを描画/再描画/更新するのに十分速くなければなりません。 AFAIKのAPIをテストすることで、データの注入はモバイルアプリケーションの速度を低下させます。 FFIを使用すると、アプリケーションでスムーズに実行されるためにグラフがどれぐらい速く表示されるかを示すのに役立ちます。HTMLによるモバイルアプリケーション用の高性能JavaScriptチャートAPI

  1. 更新:毎500ミリ秒又はおそらく250msの
  2. 更新当たり
  3. 新データ:(APIをグラフ化するために、Bluetoothから)を横断
  4. データの3つのシリーズのためのサイズ50と 3つの配列:C++> > UI(HTML)>> WebView >>グラフAPI

利用可能なJavaScriptチャートAPIが多数ありますが、説明された状況を考慮した。

答えて

40

以下、私の研究を見つけるでしょう。うまくいけば、これはあなたが解決策を見つけるのに役立ちます。

  1. Comparison of JavaScript Data Visualization Libraries特にflotr2は、パフォーマンスのために構築されていることを述べています。これは、6月に掲載された2012年

    モバイルフレンドリー:はい、パフォーマンスのために構築され、タッチイベント/マルチタッチ

    興味深い機能が含まれています:拡張可能なプラグインフレームワーク、パフォーマンスのために調整を。 JSONのAPI、インタラクティブ

  2. RGraphため プログラマブル:特にパフォーマンスとモバイルの問題に対処する著名なソリューションを提供します。 They have a whole page breaking down how they achieve superior performance.

  3. JSXGraph:比較記事13 Chart and Graph plotting javascript pluginsは「特別なケアは、パフォーマンスを最適化するためにとられている。」と述べていますしかし、私はモバイルサポートについてサイト上で何も見ませんでした。

  4. あなたはこれらを見てすることがあります:あなたのための任意の使用であろう、私はそこに見ることができます

    http://jsperf.com/search?q=chart

    一つだけとはいえ、FLOT対 ラファエルです。もちろん、あなたはいつもその上に構築することができます とあなたが興味を持っている他のライブラリのための独自のテストを書くことができます。https://stackoverflow.com/a/9900526/1085891

  5. 経由

    は残念ながら、Javascript Graphs and Charts libraries比較は性能基準を持っていませんが、私はまだ役に立つかもしれないと思いました。 https://canvasjs.com

エクストラ:R /プログラミングを経由して

  • JavaScript Performance On Mobile Devices

  • +0

    詳細な回答ありがとうございます。 flotr2は私のモバイルアプリケーションでスムーズに動作し、250ミリ秒ごとにサイズ100の3つのアレイを追加しようとしたので、その性能は素晴らしいです。信じられないほど:) – utvecklare

    +2

    もう1つのvia r/programming:http://canvasjs.com/ – JSuar

    3

    大きなデータセット(最大10000ポイント)を持つHighchartsチャーティングライブラリの優れた経験がありました。 SVGとVMLをレンダリングに使用します。これは、キャンバスベースのソリューションよりもはるかに高速です。さらに、フラッシュを使用しないため、ほとんどのモバイルデバイスで動作します。

    +1

    リアルタイムデータをどのように処理するのですか?私の経験では、addPoint()を呼び出して新しいポイントを毎秒(または数秒)追加するとメモリが大量に漏れます。 –

    +0

    ライアンさん、私もhighchartsを使用しましたが、長い遅延の問題は利用可能ですJavaScriptコードをwebviewに挿入してから、addPoint()メソッドを呼び出します。 – utvecklare

    +0

    代わりに 'Series#setData()'を呼び出して、シリーズ全体のデータを更新してみてください。 –

    4

    ここで別の高性能チャートライブラリは、それは、100-200msで10万人以上のデータポイントをレンダリングCanvasJS

    と呼ばれています。 Canvasをベースにしているため、最新のデバイスで動作します。

    0

    dygraphsをチェックしてください、それは印象的なデモがあります。携帯電話で簡単にテストし、良い人だと感じる。

    comparison of relevant projectsも参照してください。

    関連する問題