Out of memory exception przy wyjmowaniu metadanych z obrazka

0

Witam,
mam problem jak w temacie przy wyjmowaniu danych z pliku tif. Ma on rozmiar trochę ponad 450 MB. Do wyjmowania metadanych używałem biblioteki http://commons.apache.org/sanselan/ wersji 0.97. Przy wykonywaniu kodu:

String xmpMeta = null;
try {
	xmpMeta = Sanselan.getXmpXml(file);
} catch ...

leci mi

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at org.apache.sanselan.common.byteSources.ByteSourceInputStream.readBlock(ByteSourceInputStream.java:65)
	at org.apache.sanselan.common.byteSources.ByteSourceInputStream.access$000(ByteSourceInputStream.java:24)
	at org.apache.sanselan.common.byteSources.ByteSourceInputStream$CacheBlock.getNext(ByteSourceInputStream.java:54)
	at org.apache.sanselan.common.byteSources.ByteSourceInputStream$CacheReadingInputStream.read(ByteSourceInputStream.java:147)
...

Dodam, że zwiększałem Xms i Xmx, ale w gruncie rzeczy nie zależy mi na tym, bo mogę spotkać się z jeszcze większymi plikami. Byłbym wdzięczny za pomoc w tym problemie lub polecenie innej dobrej biblioteki.

0

Sprawdź ograniczenia biblioteki lub jej konfigurację (jeżeli coś można konfigurować). Najwyraźniej podczas parsowania pliku jej klasy ładują z niego mnóstwo danych do pamięci i nie wyrzucają ich zaraz po użyciu. Dlatego ja mam zawsze duży dystans do obcych bibliotek. Szczególnie obsługujących grafikę i video. Większość programistów pisze swój kod jakby w Javie nie było ograniczenia pamięci RAM. A potem zdziwienie...

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