java - 将数据保存在内存中和将其写入驱动器之间是否存在最佳点?

标签 java gps java-me midlet

我正在为我未使用的 J2ME SE Hazel j20i 开发 J2ME 应用程序(使用 SDK 3.4),以通过 Location API 记录 GPS 数据。

CLDC 1.1、MIDP 2.1 和 JSR-75 都不提供 java.io.BufferedWriter。 所以我手动完成。

我需要存储多少 GPS 读数(GPS 记录将无限期地运行直到停止) 在内存(变量)中,直到我必须将其写入磁盘?

什么对性能最好?

最佳答案

知道写入/读取硬盘驱动器(SD 卡等)的成本高于写入/读取内存 (RAM),我建议您在收集 GPS 数据时跟踪可用内存,并定义写入数据的阈值到硬盘。我无法告诉你最佳阈值是多少。您可以这样跟踪内存:

 long totalMemory = Runtime.getRuntime().totalMemory();
 long freeMemory = Runtime.getRuntime().freeMemory();
 if(threshold > freeMemory)
     //1-write to hard drive
     //2-make sure you use the proper mechanism to help the 
     //garbage collector (GC) do its job. ex: reinitialize your data structures, set them to null ... 

请注意,GC 在清除内存之前可能需要一些时间,您还需要正确处理它,因为清除数据结构后,您的可用内存不会立即变大,之前可能会变为零,但希望 GC 会做到这一点工作,你就不会忘记。不需要提醒您必须处理内存不足的情况!祝你今天过得愉快。

关于java - 将数据保存在内存中和将其写入驱动器之间是否存在最佳点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272711/

相关文章:

java - 如何使用 JNA 读取 Linux 命令的输出

java - 网络提供商生成一个位置的 2 个副本

android - 如何阻止用户长时间等待位置修复?

java - j2me+在form中以递减形式打印数字

netbeans - 在 NetBeans 中添加 Java ME 平台

java-me - 使用j2me播放目录中的mp4的视频播放器

java - 什么时候消息传递(例如 JMS)是多线程的替代方案?

java - 关闭线程

java - 共享一个实例,但为每个新进程创建一个新实例

android - 无需插入 Sim 卡即可获取纬度和经度,并从应用程序启动/停止 Gps