Surya Chandra
Surya Chandra

Reputation: 1591

How to avoid Out of memory exception without increasing Heap size on eclipse

I have an code which reads lots of data from a file and writes that to an excel file. The problem im facing is, when the data goes beyond the limit of heap size, its throwing an out of memory exception. I tried increasing the heap size and the program ran normally. But the problem is, there is limited RAM on my machine and if I dedicate huge space to the heap, the machine is becoming very slow. So, is there any way to free the memory after the processing some limit of data so that I need not increase my Heap size for running my code? Im relatively new to this kind of stuff, so please suggest some ideas

Upvotes: 2

Views: 2837

Answers (3)

UsTa
UsTa

Reputation: 349

You can use DirectByteBuffer with Buffer.allocateDirect(byteSize); or MemoryMappedFile, they use memory space out of heap memory.

Upvotes: 0

Venkata Rammohan CH
Venkata Rammohan CH

Reputation: 1

I think, JXL API provides such kind of limited buffer functionality.It's an open source API. http://jexcelapi.sourceforge.net/

Upvotes: 0

kgiannakakis
kgiannakakis

Reputation: 104168

In cases like this you need to restructure your code, so that it works with small chunks of data. Create a small buffer, read the data into it, process it and write it to the Excel file. Then continue with the next iteration, reading into the same buffer.

Of course the Excel library you are using needs to be able to work like this and shouldn't requiring writing the whole file in a single go.

Upvotes: 2

Related Questions