1

Java で 1 週間ほど取り組んできた問題があります。データを落とさずに Android の外部ストレージに 1 秒あたり約 90 ~ 120MB 書き込む効率的な方法を見つけようとしています。私のテストでは、外部ストレージの通常の速度範囲である 18 ~ 20MB/s を取得していますが、プロセスごとの Android のヒープは 140MB ~ 256MB (largeHeap フラグを使用して最大 138MB を取得) であるため、大きなサイズを作成することは不可能です。 Java リンク リストまたは配列を使用してデータをそのまま保持するのに十分なバッファ (データは 90+MB/s で生成されます)。JNI は、ファイルの書き込みが追いつく間、データを保持するのに十分な大きさの循環配列またはリンク リストを作成するための適切なオプションですか? 「余分な」メモリを取得するために別のプロセスでサービスを実行することを誰かが提案した別の投稿を見ました。私' シリアライゼーションが生成されたデータの転送を遅くすることを心配しているだけです。欲求不満でこれまでのコードをすべて削除しました。前もって感謝します。

4

1 に答える 1

1

90 ~ 120 MB/秒で書き込むには、このデータ レートをサポートするデバイスが必要です。注: 通常の HDD では、これほど多くのことはできません。

追加のバッファリングを追加できますが、これは持続可能ではありません。代わりに、より少ないデータで同じ情報を書き込む方法を見つけることをお勧めします。たとえば、データを圧縮します。

ところで、JNI はデバイスの実行速度を上げたり、メモリを増やしたりしません。

于 2013-04-28T19:59:51.650 に答える