Mark Space said:
This *still* causes the output to be flushed. Remove the \n and I get a
50% speed increase (halves runtime). Is there no way to set the
autoflush for System.out to false?
I have written the following attempt.
But I have not tested whether it works.
(The exception handling still can be simplified.)
/* NB: The "false" below is intended to turn autoflush off. */
public class Main
{
public static java.io.PrintStream newOutPrintWithAutoflushTurnedOff()
{ java.io.PrintStream outPrint = null;
java.lang.Exception ex = null;
final java.io.FileDescriptor outDescriptor =
java.io.FileDescriptor.out;
try{ java.io.FileOutputStream outStream =
new java.io.FileOutputStream( outDescriptor );
outPrint = new java.io.PrintStream( outStream, false ); }
catch( final java.lang.SecurityException e ){ ex = e; }
if( ex != null )throw new java.lang.RuntimeException( ex );
return outPrint; }
public static void setOutWithAutoflushTurnedOff()
{ java.io.PrintStream outPrint;
java.lang.Exception ex = null;
try{ outPrint = newOutPrintWithAutoflushTurnedOff();
try{ java.lang.System.setOut( outPrint ); }
catch( final java.lang.SecurityException e ){ ex = e; }}
catch( final java.lang.RuntimeException e ){ ex = e; }
if( ex != null )throw new java.lang.RuntimeException( ex ); }
public static void main( final java.lang.String[] args )
{ setOutWithAutoflushTurnedOff();
java.lang.System.out.println( "Is autoflush\noff now?" ); }}