Re: fprintf vs ofstream...need help
"learner" <itsSunny@gmail.com> skrev i meddelandet
news:1147737626.252458.200820@g10g2000cwb.googlegroups.com...
Hi,
could someone suggest why there is a lot of difference in the time
taken for FILE* and ofstream...could someone please help this
learner
:)
FILE* afile = fopen("C:\\filedesc.dat", "w");
ofstream aStreamFile("c:\\streambuf.dat");
time_t starttimefiledesc, endtimefiledesc;
time(&starttimefiledesc);
for(long i = 0; i < 500000; ++i)
fprintf(afile, "%d %s %d\n", i, "The Test", i);
time(&endtimefiledesc);
fclose(afile);
cout << "time taken for File Desc = " <<
difftime(endtimefiledesc,
starttimefiledesc) << endl;
time_t starttimefstream, endtimefstream;
time(&starttimefstream);
for(long j = 0; j < 500000; ++j)
aStreamFile << j << "The Test" << j <<endl;
time(&endtimefstream);
aStreamFile.close();
cout << "time taken for ofstream = " <<
difftime(endtimefstream,
starttimefstream) << endl;
PS : my primary concern is the that the time taken by ofstream is
HUGE
compared to FILE*. I am *not * particular about the accuracy of the
metrics/time call I used...Its just a raw comparision....
FILE * takes 0 units
ofstream takes *10 units* - Strange!!
Are you running in debug mode, or what?
On my machine the results are
Debug
time taken for File Desc = 2.0
time taken for ofstream = 59.0
Release
time taken for File Desc = 1.0
time taken for ofstream = 1.0
Seems pretty reasonable to me.
Bo Persson
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]