[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #11 from fxcoudert at gcc dot gnu dot org 2007-10-26 22:43 --- Probably too generic to be useful, and we're not doing so bad. Closing (with Jerry's approval). -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
-- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added Severity|normal |enhancement http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #10 from jvdelisle at gcc dot gnu dot org 2007-06-22 20:20 --- Keeping track of these here. -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added BugsThisDependsOn|20278 |32382 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #9 from jvdelisle at gcc dot gnu dot org 2007-04-29 00:23 --- Subject: Bug 31501 Author: jvdelisle Date: Sun Apr 29 00:23:35 2007 New Revision: 124266 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=124266 Log: 2007-04-28 Jerry DeLisle [EMAIL PROTECTED] PR libfortran/31501 * io/list_read.c (next_char): Fix whitespace. * io/io.h: Remove prototypes and define macros for is_array_io, is_stream_io, and is_internal_unit. * io/unit.c (is_array_io), (is_internal_unit), (is_stream_io): Delete these functions. * io/transfer.c (read_sf): Change handling of internal_unit to make a single call to salloc_r and use memcpy to transfer the data. Modified: trunk/libgfortran/ChangeLog trunk/libgfortran/io/io.h trunk/libgfortran/io/list_read.c trunk/libgfortran/io/transfer.c trunk/libgfortran/io/unit.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #5 from jvdelisle at gcc dot gnu dot org 2007-04-22 20:24 --- Created an attachment (id=13425) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13425action=view) Patch to improve read-sf This patch knocks read_sf off the profile. Thats a start. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #6 from jvdelisle at gcc dot gnu dot org 2007-04-22 21:18 --- Created an attachment (id=13426) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13426action=view) Modified patch for further improvement This modified patch, gets the time for the test case on my system from about 12 seconds down to about 7.6. before$ time ./a.out real0m11.162s user0m10.845s sys 0m0.306s after$ time ./a.out real0m7.680s user0m7.666s sys 0m0.002s We probably want to make is_array_io a macro so we can retain code readability. The big culprit here is now push_char in list_read.c -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added Attachment #13425|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #7 from jvdelisle at gcc dot gnu dot org 2007-04-22 22:09 --- Created an attachment (id=13427) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13427action=view) Refinement on the previous, using macros With this patch I replaced is_array_io, is_internal_unit, and is_stream_io with macros. Now on my system I get this down to 7 seconds. $ time ./a.out real0m6.954s user0m6.951s sys 0m0.001s -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added Attachment #13426|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #8 from patchapp at dberlin dot org 2007-04-22 23:40 --- Subject: Bug number PR31501 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2007-04/msg01439.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #4 from jvdelisle at gcc dot gnu dot org 2007-04-18 06:12 --- Looking at sf_read in transfer.c, we can see that we are reading one character at a time with internal units. This was done for external units because we can not anticipate where the end of the file is until we hit it. This does not make sense with internal units because we know the record length at run time. I should be able to improve this quite a bit by doing one larger read. I also may be able to do a straight memcpy which will further improve this. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501
[Bug libfortran/31501] libgfortran internal unit I/O performance issues
--- Comment #3 from jvdelisle at gcc dot gnu dot org 2007-04-10 00:19 --- I am not sure this is formatted I/O related. I will investigate further, but I suspect we are allocating buffer memory to write to memory and we should not have to do that. -- jvdelisle at gcc dot gnu dot org changed: What|Removed |Added Summary|libgfortran I/O performance |libgfortran internal unit |issues |I/O performance issues http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31501