0
나는 안드로이드 플랫폼에서 itext를 사용하여 pdf를 읽고 있는데, 큰 코드를 열려고하면 다음 code.but를 사용합니다. 첫 번째 줄에 메모리 오류가 발생했습니다. 즉 reader = 새로운 PdfReader (fileName);. 또한 큰 파일을 클릭 할 때 생성되는 satck 추적이 아래에 있습니다.큰 pdfs에서 tex를 추출 할 수 없습니다
reader = new PdfReader(fileName);
numberOfPages = reader.getNumberOfPages();
System.out.println("This document contains:" + numberOfPages);
extractor = new PdfTextExtractor(reader);
01-23 18:04:50.607: INFO/System.out(428): @@@@!!!/sdcard/Moby_Dick_NT.pdf
external 899K/1038K, paused 202ms
01-23 18:05:31.298: INFO/dalvikvm(428): Jit: resizing JitTable from 1024 to 2048
01-23 18:05:32.947: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 1678K, 31% free 10361K/14855K, external 899K/1038K, paused 218ms
01-23 18:05:35.657: DEBUG/dalvikvm(428): GC_CONCURRENT freed 2038K, 31% free 10403K/15047K, external 899K/1038K, paused 5ms+10ms
01-23 18:06:00.537: DEBUG/dalvikvm(428): GC_CONCURRENT freed 1845K, 30% free 10625K/15111K, external 899K/1038K, paused 9ms+8ms
01-23 18:06:02.397: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 1995K, 32% free 10546K/15303K, external 899K/1038K, paused 259ms
01-23 18:06:04.518: DEBUG/dalvikvm(428): GC_CONCURRENT freed 1993K, 32% free 10545K/15303K, external 899K/1038K, paused 9ms+5ms
01-23 18:06:06.468: DEBUG/dalvikvm(428): GC_CONCURRENT freed 1917K, 31% free 10583K/15303K, external 899K/1038K, paused 9ms+5ms
01-23 18:06:08.008: INFO/dalvikvm-heap(428): Clamp target GC heap from 16.145MB to 16.000MB
01-23 18:06:08.008: DEBUG/dalvikvm(428): GC_CONCURRENT freed 1542K, 29% free 10981K/15303K, external 899K/1038K, paused 9ms+5ms
browse.com/.PDFView}
01-23 18:06:09.338: INFO/dalvikvm-heap(428): Clamp target GC heap from 16.498MB to 16.000MB
01-23 18:06:09.338: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 1370K, 27% free 11342K/15495K, external 899K/1038K, paused 243ms
01-23 18:06:10.437: INFO/dalvikvm-heap(428): Clamp target GC heap from 16.776MB to 16.000MB
01-23 18:06:10.437: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 1079K, 25% free 11627K/15495K, external 899K/1038K, paused 228ms
01-23 18:06:10.857: INFO/dalvikvm-heap(428): Clamp target GC heap from 16.841MB to 16.000MB
01-23 18:06:10.857: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 256K, 25% free 11694K/15495K, external 899K/1038K, paused 215ms
01-23 18:06:10.867: INFO/dalvikvm-heap(428): Forcing collection of SoftReferences for 4100-byte allocation
01-23 18:06:11.137: INFO/dalvikvm-heap(428): Clamp target GC heap from 16.827MB to 16.000MB
01-23 18:06:11.137: DEBUG/dalvikvm(428): GC_FOR_MALLOC freed 15K, 25% free 11679K/15495K, external 899K/1038K, paused 272ms
01-23 18:06:11.137: ERROR/dalvikvm-heap(428): Out of memory on a 4100-byte allocation.
01-23 18:06:11.147: INFO/dalvikvm(428): "main" prio=5 tid=1 RUNNABLE
01-23 18:06:11.147: INFO/dalvikvm(428): | group="main" sCount=0 dsCount=0 obj=0x4001f1a8 self=0xce48
그러나 16MB의 힙 크기를 지원하는 전화는 어떻게됩니까? – Rookie
16MB 만 지원한다면? 까다로운 경우, 파일을 순차적으로 읽어야하고, 16MB 경계를 넘지 않도록 메모리의 일부분을 메모리에 유지해야합니다. 그 방법을 잘 모르겠다. – Scalarr