[Bug libfortran/31501] libgfortran internal unit I/O performance issues

2007-10-26 Thread fxcoudert at gcc dot gnu dot org


--- 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

2007-10-08 Thread jvdelisle at gcc dot gnu dot org


-- 

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

2007-06-22 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-28 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-22 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-22 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-22 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-22 Thread patchapp at dberlin dot org


--- 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

2007-04-17 Thread jvdelisle at gcc dot gnu dot org


--- 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

2007-04-09 Thread jvdelisle at gcc dot gnu dot org


--- 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