Kwan Lowe wrote: > Michael D. Berger > > I have a C++ program that opens, gets a little data from, and closes > > about 5000 files. Now if I run the program when I first boot up, > > the running time is from about 10 seconds to a minute. Subsequently, > > the program runs in well inter one second. Buffering -- right? > > > > So I changed a parameter, so the program gets a different (albeit > > similar) 5000 files from a different directory. Running time on > > the first try: well under one second. > > > > How about that? > > > > [~]$ uname -a > > Linux xxxxx 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:53:09 EST 2011 i686 > > i686 i386 GNU/Linux > > Buffering, certainly.. but maybe on several layers. The physical > disk may have a read ahead cache. The OS may also buffer. > > You may also be pulling in libraries on the initial run which stay > resident for awhile.. You might explore what vmstat says about disk activity during an initial vs follow-on run. Also, I wonder what "top" shows in the WCHAN and nFLT columns. -- Charles Polisher