我有一个java函数,对大量数据进行操作可能是500MB。我必须将这500MB的数据传递给java函数,并在处理完java函数后返回数据。
我的表格形式如下
col1 col2 col3 col4 col5 col6
3 5 2 5 1 6
7 5 6 8 3 8
5 3 7 9 8 1
我心里想的很少,但不确切知道哪一个是有效的,以及如何实现我需要的java api。
我想到的这些想法,如果有人可以提供上述3种方法的利弊,或者提出一些新的方法,我将不胜感激。
答案 0 :(得分:1)
传递一个数组只会传递一个不涉及任何数据复制的引用,因此尽可能高效。对数组的任何修改都将在引用的数组上完成。什么都不需要退货。
答案 1 :(得分:1)
如果您正在从文件或流中读取数据,则可以将文件映射到内存中。所以它不会读取整个文件。查看here
答案 2 :(得分:1)
由于您有表格格式的大量数据,您是否考虑过使用Java DB(数据库)?这取决于你要做什么样的处理,你需要多长时间开发以及你已经知道数据库/ SQL的程度,但听起来你要逐行读取数据和数据库这是一个很好的方法 - 特别是对于大量数据。
Java Trail上有关于JDBC API的信息,以及如何使用它的步骤:http://docs.oracle.com/javase/tutorial/jdbc/overview/index.html
来自Java Trail:
JDBC API是一种Java API,可以访问任何类型的表格数据,尤其是存储在关系数据库中的数据。
要记住的一些事情:
答案 3 :(得分:0)
如果您正在考虑通过Java函数/方法处理数据,请考虑一次处理要处理的数据块。您可以根据一些计算(例如从10 KB开始)查看Chunk的大小,并查看性能和计算。这取决于执行环境。 有几种方法可以从文件/流/数据库中获取数据块(即使它是远程服务器)。您需要发布有关问题的更多详细信息以获得更好的建议。