你好,我正在从事自然语言处理的拼写校正器项目,并且需要从一个文件中读取数据。这个文件的大小是1GB而不是6.2MB。虽然它现在能够很好地工作,但我面临的问题是每次运行Java程序时都必须加载数据到内存中,而这需要同样的时间。
有没有办法将这些数据缓存在Java的内存中?有没有人可以提供一些解决方法?
基本上我想知道如何将一个大文件的内容存储在内存中,以便我不必再次读取它。比如说文件有GB级别的大小。
你好,我正在从事自然语言处理的拼写校正器项目,并且需要从一个文件中读取数据。这个文件的大小是1GB而不是6.2MB。虽然它现在能够很好地工作,但我面临的问题是每次运行Java程序时都必须加载数据到内存中,而这需要同样的时间。
有没有办法将这些数据缓存在Java的内存中?有没有人可以提供一些解决方法?
基本上我想知道如何将一个大文件的内容存储在内存中,以便我不必再次读取它。比如说文件有GB级别的大小。
由于数据量相对较小,大约有6.2 MB,所以很可能会被存储在操作系统的缓存中,加载时间不应该太长。您应该调查是否是解析数据花费了较长时间,可以将解析后的数据缓存到二进制文件中以便快速加载。
6.2 MB并不算很大,除非加载该文件需要很长时间并且无法使用后台线程加载,否则不必担心。
您可以使用内存映射文件,但这些文件的处理不太简单。如果您有1 GB至1 TB的数据,内存映射文件会很有用。