我必须使用long索引范围为0到33554432 的数组.
它给出了一个错误:
"Exception in thread main java.lang.OutOfMemoryError: Java heap space".
Run Code Online (Sandbox Code Playgroud)
而short数组不会出现此错误.我必须使用long数组和相同的索引,我该怎么办?
我正在对HashMap插入进行一些性能测试.我正在测试的操作是在插入后插入,读取和在内存中的大小.
我可以做,插入和读取测试,但不知道如何找出size in memory after insertion-
我有一个文本文件,其中包含200万个英文单词,其频率为此格式 -
hello 100
world 5000
good 2000
bad 9000
...
Run Code Online (Sandbox Code Playgroud)
现在我逐行读取此文件并将其存储,HashMap以便我可以使用以下代码测量插入性能.
Map<String, String> wordTest = new HashMap<String, String>();
try {
fis = new FileInputStream(FILE_LOCATION);
reader = new BufferedReader(new InputStreamReader(fis));
String line = reader.readLine();
long startTime = System.nanoTime();
while (line != null) {
String[] splitString = line.split("\\s+");
// now put it in HashMap as key value pair
wordTest.put(splitString[0].toLowerCase().trim(), splitString[1].trim());
line = reader.readLine();
}
long endTime = System.nanoTime() - startTime;
System.out.println("Insertion …Run Code Online (Sandbox Code Playgroud) 我是hibernate中的菜鸟,我必须从Java z/OS-Database中读取200万条带有hibernate的Java记录.(JDBC)
我的问题是,我在150000条记录后运行OutOfMemory.
我听说过批处理等,但我只找到实际插入新记录的解决方案.我想要做的是在ArrayList中读取此记录以供进一步使用.
所以我实际上只是选择数据库的一行来减少数据:
getEntityManager().createQuery("select t.myNumber from myTable t").getResultList();
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法来读取如此大量的记录,也会很有趣.(也许没有Hibernate?)
我正在使用Apache Poi XSSFWorkbooks来处理xlsx文件;我的程序在小型excel文件(60000行)上运行良好。当我开始在一个大文件(700 000行)上测试代码时,我遇到了内存问题。我在具有16 GB RAM的计算机上测试我的代码,但它不起作用。
这个问题有帮助吗?我读过有关SAX解析器的信息,但是我不想修改我的代码,而且我觉得使用起来并不直观。这不像xssf那样简单,它具有获取单元格,行等的简单方法。
有没有办法保持我的代码不变并解决内存问题?或除SAX解析器之外的任何解决方案?任何帮助表示赞赏,谢谢。
我的 Jenkins 在 Ubuntu 服务器实例中运行。完成后,当生成 Checkmarx 报告时Java heap space,出现屏幕截图所示的问题:
有人可以帮助我如何增加 Checkmarx 中的 Java 堆空间吗?
要阅读 Atlassian KB 文章“ Scan Fails with Java Heap Space Exception ”,似乎需要一个帐户。
嗨,我正在从工作.xls表中读取包含8500数据行的数据,我正在尝试将其存储double[][]但我收到错误
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)
码
public static double[][] getData_DoubleArray(String path, int sheetNo, int rowIndex1, int rowIndex2) {
double[][] doubleArray=null;
try {
HSSFSheet sheet = PS_ExcelReader.getWorkSheet(path,sheetNo);
System.out.println("sheet" + sheet);
List<Object> data1 = PS_ExcelReader.getFullColumnByIndex(sheet, rowIndex1);
List<Object> data2 = PS_ExcelReader.getFullColumnByIndex(sheet, rowIndex2);
doubleArray = new double[data1.size()][data2.size()];
for(int i = 0; i < data1.size(); i++) {
for(int j = 0; j < data2.size(); j++) {
doubleArray[i][0] = (Double)data1.get(i);
doubleArray[i][1] = (Double)data2.get(j);
}
}
System.out.println("array …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的文件,每行都有独特的单词.文件大小约为1.6 GB(我要在此之后对其他文件进行排序,大约为15GB).直到现在,我使用的文件较小Array.sort().但对于这个文件我得到了java.lang.OutOfMemoryError: Java heap space.我知道这个错误的原因.有没有办法,而不是写完整的快速排序或合并排序程序.
我读到Array.sort()在内部使用Quicksort或Hybrid Sort.有没有像Array.sort()??的程序?
如果我必须编写一个程序进行排序,我应该使用哪一个?Quicksort或Merge排序.我担心最坏的情况.