On Wed 21 Mar 2007 at 10:24PM, allen mathias wrote: > Apologies for not posting this earlier. This is the source code. > > int main() > { > string line; > ofstream fsmo; > fsmo.open("temp.temp.ae"); > > ifstream fsm; > fsm.open("temp.ae"); > getline(fsm, line); > while(line!="eof") > { > fsmo << line<< endl; > getline(fsm, line); > } > > return 0; > }
If you run your two variants under truss -c, you may see that under CC this seems to generate an excess of lseek's. I'm not sure why: Here's an example from /usr/dict/words (I stuck "eof" at the end of it): CC: lseek .571 150890 write(6, " a d m o n i t i o n\n", 11) = 11 lseek(6, 0, SEEK_CUR) = 2763 lseek(6, 0, SEEK_CUR) = 2763 lseek(6, 0, SEEK_CUR) = 2763 lseek(6, 0, SEEK_CUR) = 2763 lseek(6, 0, SEEK_END) = 2763 lseek(6, 2763, SEEK_SET) = 2763 g++: lseek .000 1 write(6, " a d m o n i s h\n", 9) = 9 write(6, " a d m o n i t i o n\n", 11) = 11 write(6, " a d o\n", 4) = 4 That's not good, although I don't know why that might be happening. Could you confirm whether you are indeed seeing this happen? -dp -- Daniel Price - Solaris Kernel Engineering - [EMAIL PROTECTED] - blogs.sun.com/dp _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org