Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!transit4.readnews.com!news-out.news.tds.net!newsreading01.news.tds.net!53ab2750!not-for-mail From: "qwertmonkey" Subject: How can you make idle processors pick up java work? Message-ID: <50182C83.55857.calajapr@time.synchro.net> X-Comment-To: All Newsgroups: comp.lang.java.programmer X-FTN-AREA: COMP.LANG.JAVA.PROGRAMMER X-FTN-MSGID: 1:261/38 83bfe7b3 Content-Type: text/plain; charset=IBM437 Content-Transfer-Encoding: 8bit X-Gateway: time.synchro.net [Synchronet 3.16a-Win32 NewsLink 1.98] Lines: 83 Date: Tue, 31 Jul 2012 20:07:09 GMT NNTP-Posting-Host: 69.21.70.65 X-Complaints-To: news@tds.net X-Trace: newsreading01.news.tds.net 1343765229 69.21.70.65 (Tue, 31 Jul 2012 15:07:09 CDT) NNTP-Posting-Date: Tue, 31 Jul 2012 15:07:09 CDT Organization: tds.net Xref: csiph.com comp.lang.java.programmer:16889 From: "qwertmonkey" From: qwertmonkey@syberianoutpost.ru ~ > You might have more luck reading the whole file at once ~ Well, this I have tried also, but I am getting java.lang.OutOfMemoryError: Java heap space relating to the HeapCharBuffer ~ import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.channels.FileChannel; import java.nio.MappedByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CodingErrorAction; import java.nio.charset.CharacterCodingException; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.FileInputStream; // __ public class NIO06Test{ private static final String aNWLn = System.getProperty("line.separator"); private static final String aOEnc = "UTF-8"; // __ public static void main(String[] aArgs){ if((aArgs != null) && (aArgs.length == 1)){ // __ long lTm00 = System.currentTimeMillis(); Path IFlPth = FileSystems.getDefault().getPath(aArgs[0]); File IFl = IFlPth.toFile(); if(IFl.exists()){ long lIFlL = IFlPth.toFile().length(); // __ Charset InChrSt = Charset.forName(aOEnc); CharsetDecoder InDec = InChrSt.newDecoder(); InDec.onMalformedInput(CodingErrorAction.REPORT); InDec.onUnmappableCharacter(CodingErrorAction.REPORT); // __ try{ // __ FileInputStream FIS = new FileInputStream(IFl); FileChannel IFlChnl = FIS.getChannel(); int iChnlSz = (int)IFlChnl.size(); MappedByteBuffer MptBytBfr = IFlChnl.map(FileChannel.MapMode.READ_ONLY, 0, iChnlSz); CharBuffer MptChrBfr = InDec.decode(MptBytBfr); // __ }catch(CharacterCodingException ChrKdX){ ChrKdX.printStackTrace(); } catch(FileNotFoundException FNFX){ FNFX.printStackTrace(); } catch(IOException IOX){ IOX.printStackTrace(); } } } else{ System.err.println("// __ usage:" + aNWLn + aNWLn + " java NIO2_newBufferedReader02Test \"\"" + aNWLn); } } } ~ $ javac -encoding utf8 NIO06Test.java $ date; java -Xms256m -Xmx1024m -Xincgc -Dfile.encoding=utf8 NIO06Test /media/sdb1/tmp/eng_news_2006_10M-sentences.txt; date; Tue Jul 31 08:26:49 UTC 2012 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.nio.HeapCharBuffer.(HeapCharBuffer.java:57) at java.nio.CharBuffer.allocate(CharBuffer.java:331) at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:777) at NIO06Test.main(NIO06Test.java:105) Tue Jul 31 08:26:49 UTC 2012 ~ lbrtchx -+- BBBS/Li6 v4.10 Dada-1 + Origin: Prism bbs (1:261/38) -+- Synchronet 3.16a-Win32 NewsLink 1.98 Time Warp of the Future BBS - telnet://time.synchro.net:24 --- BBBS/Li6 v4.10 Dada-1 * Origin: Prism bbs (1:261/38) --- Synchronet 3.16a-Win32 NewsLink 1.98 Time Warp of the Future BBS - telnet://time.synchro.net:24