Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #55173

Re: fseek under IBM MVS

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c
Subject Re: fseek under IBM MVS
Date 2014-12-21 21:37 +1300
Message-ID <cfnf5oF78auU2@mid.individual.net> (permalink)
References (2 earlier) <549153d8.2327046@news.xs4all.nl> <lnvbladx5k.fsf@nuthaus.mib.org> <5491bce4.3633812@news.xs4all.nl> <5335081f-da7f-45f8-9e3f-846071ad8a22@googlegroups.com> <f04dfd77-aa90-4604-bd6b-c81fc3861e05@googlegroups.com>

Show all headers | View raw


John Bode wrote:
>
> Womped up a quick and very dirty test on a 64-bit SLES 10 system.
>
> Wrote 3 functions to get file size; one calls stat on the pathname, one
> opens the file and calls fstat on the descriptor, and the third opens the
> file and uses fseek/ftell on the file pointer.
>
> The functions that use stat and fstat take around 3 to 4 usec to run.  The
> function that uses fseek/ftell takes 15 to 20 usec.
>
> The sizes all report the same (one would hope).
>
> Of course, whether the performance difference means anything depends on
> the context.  If you're doing this for one file once over the lifetime
> of the program, it really doesn't matter.  If you're doing this thousands
> of times for an entire filesystem, then stat would probably be the better
> choice.

It will also depend on the filesystem.  For a example scanning a set of 
large files on my system, ZFS, the difference is much smaller:

419 files
File sizes (MB)

            value  ------------- Distribution ------------- count
               32 |                                         0
               64 |@                                        6
              128 |@@@@@@@                                  72
              256 |@@@@@@@@@@@@@@@                          154
              512 |@@@@@@                                   64
             1024 |@@@@@@@@@@@                              111
             2048 |@                                        11
             4096 |                                         1
             8192 |                                         0

Execution time (nS)

   sizeTestStat
            value  ------------- Distribution ------------- count
             1024 |                                         0
             2048 |                                         5
             4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  412
             8192 |                                         1
            16384 |                                         1
            32768 |                                         0

   sizeTestTell
            value  ------------- Distribution ------------- count
             2048 |                                         0
             4096 |@                                        12
             8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  406
            16384 |                                         0
            32768 |                                         1
            65536 |                                         0

Where:

long sizeTestTell( const char* file )
{
   FILE* handle = fopen( file, "r" );

   long result = -1;

   if( handle )
   {
     if( fseek( handle, 0, SEEK_END ) == 0 )
     {
       result = ftell( handle );
     }
     fclose( handle );
   }
   return result;
}

long sizeTestStat( const char* file )
{
   struct stat sb;
   int ok = stat( file, &sb );
   return (ok == 0) ? sb.st_size : -1;
}

-- 
Ian Collins

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-14 22:16 +0100
  Re: fseek under IBM MVS glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-15 01:12 +0000
    Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-15 09:13 +0100
      Re: fseek under IBM MVS glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-15 09:22 +0000
  Re: fseek under IBM MVS Kaz Kylheku <kaz@kylheku.com> - 2014-12-15 16:26 +0000
    Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 09:58 +0000
      Re: fseek under IBM MVS BartC <bc@freeuk.com> - 2014-12-17 11:29 +0000
  Re: fseek under IBM MVS John Bode <jfbode1029@gmail.com> - 2014-12-15 10:35 -0800
    Re: fseek under IBM MVS glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-15 21:33 +0000
      Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-15 23:45 +0100
        Re: fseek under IBM MVS Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2014-12-15 17:56 -0500
          Re: fseek under IBM MVS Kaz Kylheku <kaz@kylheku.com> - 2014-12-15 23:05 +0000
          Re: fseek under IBM MVS BartC <bc@freeuk.com> - 2014-12-15 23:19 +0000
            Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-15 16:36 -0800
            Re: fseek under IBM MVS Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2014-12-15 20:42 -0500
          Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-16 01:00 +0100
        Re: fseek under IBM MVS glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-16 01:09 +0000
          Re: (OT) fseek under IBM MVS Vincenzo Mercuri <nomail@yahoo.it> - 2014-12-16 09:11 +0100
        Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 10:06 +0000
          Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-17 11:33 +0100
            Re: fseek under IBM MVS John Bode <jfbode1029@gmail.com> - 2014-12-17 08:48 -0800
              Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 17:26 +0000
              Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-17 19:46 +0100
                Re: fseek under IBM MVS Richard Heathfield <invalid@see.sig.invalid> - 2014-12-17 19:28 +0000
                Re: fseek under IBM MVS jacob navia <jacob@spamsink.net> - 2014-12-17 21:38 +0100
                Re: fseek under IBM MVS Richard Heathfield <invalid@see.sig.invalid> - 2014-12-17 21:05 +0000
                Re: fseek under IBM MVS Ian Collins <ian-news@hotmail.com> - 2014-12-18 11:37 +1300
                Re: fseek under IBM MVS John Bode <jfbode1029@gmail.com> - 2014-12-17 12:43 -0800
        Re: fseek under IBM MVS fir <profesor.fir@gmail.com> - 2014-12-19 08:35 -0800
          Re: fseek under IBM MVS BartC <bc@freeuk.com> - 2014-12-19 16:51 +0000
          Re: fseek under IBM MVS Robert Wessel <robertwessel2@yahoo.com> - 2014-12-19 16:36 -0600
    Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 10:05 +0000
      Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-17 09:05 -0800
        Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 17:29 +0000
          Re: fseek under IBM MVS John Bode <jfbode1029@gmail.com> - 2014-12-17 12:55 -0800
            Re: fseek under IBM MVS John Bode <jfbode1029@gmail.com> - 2014-12-17 15:02 -0800
              Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-17 23:37 +0000
                Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-17 16:11 -0800
                Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-18 12:06 +0000
                Re: fseek under IBM MVS James Kuyper <jameskuyper@verizon.net> - 2014-12-18 11:44 -0500
                Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-18 11:03 -0800
                Re: fseek under IBM MVS raltbos@xs4all.nl (Richard Bos) - 2014-12-19 11:31 +0000
                Re: fseek under IBM MVS James Kuyper <jameskuyper@verizon.net> - 2014-12-19 08:03 -0500
                Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-19 08:08 -0800
                Re: fseek under IBM MVS James Kuyper <jameskuyper@verizon.net> - 2014-12-19 11:30 -0500
              Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-17 15:56 -0800
              Re: fseek under IBM MVS Ian Collins <ian-news@hotmail.com> - 2014-12-21 21:37 +1300
        Re: fseek under IBM MVS glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-12-17 21:59 +0000
          Re: fseek under IBM MVS Keith Thompson <kst-u@mib.org> - 2014-12-17 14:33 -0800
          Re: fseek under IBM MVS "Charles Richmond" <numerist@aquaporin4.com> - 2014-12-18 16:06 -0600
  Re: fseek under IBM MVS Siri Crews <chine.bleu@yahoo.com> - 2014-12-17 04:20 -0800

csiph-web