http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50673

             Bug #: 50673
           Summary: very slow I/O with trailing spaces
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: joost.vandevond...@pci.uzh.ch


The following testcase (derived from CP2K, which required 20min to read a 600Mb
file) is about 100x times slower with gfortran than with ifort (12.0.4)

CHARACTER(LEN=40480) :: line="O 0.12456789 0.123456789 0.123456789"
CHARACTER(LEN=2) :: AA
REAL*8 :: vec(3)
DO i=1,10000
   read(line,*) AA,vec
ENDDO
END

The issue seems related to how efficient the trailing spaces are handled in
both compilers. 4.7 is a bit (20%) slower than 4.3, but nothing fundamental.

Profiling the code shows that most time is spent in next_char, mem_read,
memcpy, eat_spaces.

Reply via email to