Java heap space

0

Witam...

mam pewien plik z którego odczytuje dane.
Problem polega na tym że jest och baaaardzo dużo i gdy chcę je odczytać wszystkie na raz wyskakuje mi fail jak w temacie

Może wie ktoś jak rozwiązać ten problem....
Od razu mówię że te dane potrzebne mi są do zrobienia wykresu.
Czy mam omijać niektóre próbki?
Dane z pliku zapisuje do ArrayList.
do odczytu używam DataInputStream i FileInputStream.

Opcja z powiększaniem pamięci nie wchodzi tu w grę....

0

Ale musisz naraz wczytac cały plik? Przecież potrzebujesz tyle punktów ile masz pikseli na osi X......

0

Bo ja trochę cieniutki z javy jestem :/

Faktycznie - na tych danych i tak będę musiał dokonać segmentacji - więc nie muszę wczytywać całego...

to mi dało do myślenia :)

0

To jest jakiś proces ciagły czy dyskretny który chcesz przenieść na wykres?

Jeżeli dyskretny to nie masz wyboru - ekran ma tyle pikseli ile ma i np 1024 pikseli wykresu moga przedstawić tylko 1024 jednostki na osi odciętej. Mówiac prościej i tak musisz dodac przewijanie jakieś kolejnych "pakietów" czasowych lub co tam masz na tej osi odciętej. Wtedy wszystkie dane z pliku muszą się znaleźc na wykresie ale nie muszą wszystkie naraz,ale nie ma wyboru : 1 stan = 1 piksel

Jeżeli opisujesz proces ciągły i mniej więcej znasz ten proces (rząd stałej czasowej: inaczej ilość np.czasu potrzebna do zmiany stanów-znaczące zmiany wartosci na osi rzędnej) to mozesz pokusić się o przedstawienie całosći na jednym wykresie - ale wtedy nie dajesz wszystkiego do tablicy tylko dzielisz na pakiety i w ich obrębie uśredniach: np próbek masz 10000 a wykres na odcietej ma 1000 pikseli to wiesz ze 1 pakiet składa się z 10 próbek. Uśredniasz wartość i nanosisz. Jeżeli proces byłby silnie nieliniowy to mozesz mieć przekłamania ale to już sam ocenisz.

Powodzenia!

1 użytkowników online, w tym zalogowanych: 0, gości: 1