|
Subject: [Raw Run Log] Simple C/C++ Perfometer : Copying Files Newsgroups: gmane.comp.lang.c++.perfometer Date: 2004-04-20 09:59:56 GMT (4 years, 20 weeks, 23 hours and 23 minutes ago)
===============================
Copying files : input to output
===============================
C/C++ Performance Tests
=======================
Using Simple C/C++ Perfometer (Copying Files), Version CF-1.4
http://article.gmane.org/gmane.comp.lang.c++.perfometer/44
Environment
-----------
Windows 2000 Professional
Intel(R) Celeron(R) CPU 1.70 GHz
Compiler
---------
* GNU g++ 3.3.1 (CYGWIN); DLLs : cygwin1.dll, kernel32.dll, ntdll.dll
Test file sizes : 1000, 0000
----------------------------
Test file modes : text, binary
------------------------------
Testsuites
----------
C-01 : Functions getc() and putc()
C-02 : Functions fgetc() and fputc()
C-03 : Functions fread() and fwrite()
UNIX-C-04 : Function mmap
CPP-01 : Operators >> and <<
CPP-02 : Methods get() and put()
CPP-03 : Methods sbumpc() and sputc()
CPP-04 : Method sbumpc() and operator <<
CPP-05 : Method rdbuf() and operator <<
CPP-06 : Methods read() and write() with const buffer
CPP-07 : Methods read() and write() with max buffer
CPP-08 : Method getline
CPP-09 : Method ifstream getline
CPP-10 : Method iterators (istream_iterator, ostream_iterator)
===================== Methods of copying : BEGIN =====================
ifstream in_fs;
ofstream out_fs;
FILE* in_fp;
FILE* out_fp;
int in_fd; // For UNIX only
int out_fd; // For UNIX only
char ch;
int ich;
char buf[4096];
size_t nread;
char* mbuf = new char [file_size];
### Method C-01 : Functions getc() and putc()
-----------------------------------------------------
while ((ich = getc(in_fp)) != EOF) putc(ich, out_fp);
-----------------------------------------------------
### Method C-02 : Functions fgetc() and fputc()
-------------------------------------------------------
while ((ich = fgetc(in_fp)) != EOF) fputc(ich, out_fp);
-------------------------------------------------------
### Method C-03 : Functions fread() and fwrite()
-------------------------------------------------------
while ((nread = fread(buf, sizeof(char), sizeof(buf), in_fp)) > 0)
{
fwrite(buf, sizeof(char), nread, out_fp);
}
-------------------------------------------------------
### Method UNIX-C-04 : Function mmap
-------------------------------------------------------
char* ptr = (char*)mmap(0, file_size, PROT_READ, MAP_SHARED, fd_in, 0);
assert (ptr != MAP_FAILED);
write(fd_out, ptr, file_size);
munmap(ptr, file_size);
-------------------------------------------------------
### Method CPP-01 : Operators >> and <<
---------------------------------
in_fs.unsetf(ios::skipws);
while (in_fs >> ch) out_fs << ch;
---------------------------------
### Method CPP-02 : Methods get() and put()
-------------------------------------
while (in_fs.get(ch)) out_fs.put(ch);
-------------------------------------
### Method CPP-03 : Methods sbumpc() and sputc()
------------------------------------------------------------------------
while ((ch = in_fs.rdbuf()->sbumpc()) != EOF) out_fs.rdbuf()->sputc(ch);
------------------------------------------------------------------------
### Method CPP-04 : Method sbumpc() and operator <<
-------------------------------
ch = in_fs.rdbuf()->sbumpc();
out_fs << ch;
while (ch != EOF)
{
out_fs << in_fs.rdbuf();
ch = in_fs.rdbuf()->sbumpc();
}
-------------------------------
### Method CPP-05 : Method rdbuf() and operator <<
------------------------
out_fs << in_fs.rdbuf();
------------------------
### Method CPP-06 : Methods read() and write() with const buffer
------------------------
while (!in_fs.eof())
{
in_fs.read (buf, sizeof(buf));
out_fs.write (buf,in_fs.gcount());
}
------------------------
### Method CPP-07 : Methods read() and write() with max buffer
------------------------
in_fs.read (mbuf, file_size);
out_fs.write (mbuf, file_size);
------------------------
### Method CPP-08 : Method getline
------------------------
while (getline (fs_in, line)) fs_out << line << '\n';
------------------------
### Method CPP-09 : Method ifstream getline
------------------------
while (fs_in.getline (buffer, sizeof(buffer))) fs_out << buffer << '\n';
------------------------
### Method CPP-10 : Method iterators (istream_iterator, ostream_iterator)
------------------------
fs_in >> noskipws;
istream_iterator<char> in(fs_in), eos;
ostream_iterator<char> out(fs_out);
copy (in, eos, out);
------------------------
===================== Methods of copying : END =======================
================ Performance tests : BEGIN ================
################
File size = 1000
################
=======================================
Simple C/C++ Perfometer : Copying files
Version CF-1.4
=======================================
----------------------
GNU gcc 3.3.1 (CYGWIN)
----------------------
YOUR COMMAND LINE : a 1000 5 730 3
### File size : 1000
### Number of runs : 3
### Number of tests : 5
### Number of repetitions : 730
### CLOCKS_PER_SEC : 1000
Run-1 of 3 : Started .....
C_01_txt__functions_getc_putc : 50 units (0.050 secs)
C_01_bin__functions_getc_putc : 40 units (0.040 secs)
C_02_txt__functions_fgetc_fputc : 46 units (0.046 secs)
C_02_bin__functions_fgetc_fputc : 40 units (0.040 secs)
C_03_txt__functions_fread_fwrite : 46 units (0.046 secs)
C_03_bin__functions_fread_fwrite : 16 units (0.016 secs)
unix_C_04_txt__mmap : 73 units (0.073 secs)
cpp_01_txt__operators_in_out : 2066 units (2.066 secs)
cpp_01_bin__operators_in_out : 1926 units (1.926 secs)
cpp_02_txt__methods_get_put : 1131 units (1.131 secs)
cpp_02_bin__methods_get_put : 935 units (0.935 secs)
cpp_03_txt__methods_sbumpc_sputc : 93 units (0.093 secs)
cpp_03_bin__methods_sbumpc_sputc : 70 units (0.070 secs)
cpp_04_txt__method_sbumpc__op_out : 53 units (0.053 secs)
cpp_04_bin__method_sbumpc__op_out : 30 units (0.030 secs)
cpp_05_txt__method_rdbuf__op_out : 53 units (0.053 secs)
cpp_05_bin__method_rdbuf__op_out : 23 units (0.023 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 60 units (0.060 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 30 units (0.030 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 53 units (0.053 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 23 units (0.023 secs)
cpp_08_txt__method_getline : 1011 units (1.011 secs)
cpp_08_bin__method_getline : 974 units (0.974 secs)
cpp_09_txt__method_ifstream_getline : 123 units (0.123 secs)
cpp_09_bin__method_ifstream_getline : 70 units (0.070 secs)
cpp_10_txt__iterators : 2080 units (2.080 secs)
cpp_10_bin__iterators : 2086 units (2.086 secs)
Run-1 of 3 : Finished
Run-2 of 3 : Started .....
C_01_txt__functions_getc_putc : 113 units (0.113 secs)
C_01_bin__functions_getc_putc : 100 units (0.100 secs)
C_02_txt__functions_fgetc_fputc : 110 units (0.110 secs)
C_02_bin__functions_fgetc_fputc : 103 units (0.103 secs)
C_03_txt__functions_fread_fwrite : 97 units (0.097 secs)
C_03_bin__functions_fread_fwrite : 50 units (0.050 secs)
unix_C_04_txt__mmap : 176 units (0.176 secs)
cpp_01_txt__operators_in_out : 4977 units (4.977 secs)
cpp_01_bin__operators_in_out : 4573 units (4.573 secs)
cpp_02_txt__methods_get_put : 2723 units (2.723 secs)
cpp_02_bin__methods_get_put : 2320 units (2.320 secs)
cpp_03_txt__methods_sbumpc_sputc : 240 units (0.240 secs)
cpp_03_bin__methods_sbumpc_sputc : 176 units (0.176 secs)
cpp_04_txt__method_sbumpc__op_out : 113 units (0.113 secs)
cpp_04_bin__method_sbumpc__op_out : 70 units (0.070 secs)
cpp_05_txt__method_rdbuf__op_out : 134 units (0.134 secs)
cpp_05_bin__method_rdbuf__op_out : 70 units (0.070 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 146 units (0.146 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 66 units (0.066 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 140 units (0.140 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 63 units (0.063 secs)
cpp_08_txt__method_getline : 2467 units (2.467 secs)
cpp_08_bin__method_getline : 2397 units (2.397 secs)
cpp_09_txt__method_ifstream_getline : 253 units (0.253 secs)
cpp_09_bin__method_ifstream_getline : 196 units (0.196 secs)
cpp_10_txt__iterators : 5007 units (5.007 secs)
cpp_10_bin__iterators : 4920 units (4.920 secs)
Run-2 of 3 : Finished
Run-3 of 3 : Started .....
C_01_txt__functions_getc_putc : 73 units (0.073 secs)
C_01_bin__functions_getc_putc : 60 units (0.060 secs)
C_02_txt__functions_fgetc_fputc : 73 units (0.073 secs)
C_02_bin__functions_fgetc_fputc : 60 units (0.060 secs)
C_03_txt__functions_fread_fwrite : 63 units (0.063 secs)
C_03_bin__functions_fread_fwrite : 33 units (0.033 secs)
unix_C_04_txt__mmap : 113 units (0.113 secs)
cpp_01_txt__operators_in_out : 2984 units (2.984 secs)
cpp_01_bin__operators_in_out : 2767 units (2.767 secs)
cpp_02_txt__methods_get_put : 1655 units (1.655 secs)
cpp_02_bin__methods_get_put : 1379 units (1.379 secs)
cpp_03_txt__methods_sbumpc_sputc : 143 units (0.143 secs)
cpp_03_bin__methods_sbumpc_sputc : 107 units (0.107 secs)
cpp_04_txt__method_sbumpc__op_out : 86 units (0.086 secs)
cpp_04_bin__method_sbumpc__op_out : 43 units (0.043 secs)
cpp_05_txt__method_rdbuf__op_out : 73 units (0.073 secs)
cpp_05_bin__method_rdbuf__op_out : 43 units (0.043 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 90 units (0.090 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 46 units (0.046 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 80 units (0.080 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 36 units (0.036 secs)
cpp_08_txt__method_getline : 1455 units (1.455 secs)
cpp_08_bin__method_getline : 1466 units (1.466 secs)
cpp_09_txt__method_ifstream_getline : 170 units (0.170 secs)
cpp_09_bin__method_ifstream_getline : 113 units (0.113 secs)
cpp_10_txt__iterators : 2971 units (2.971 secs)
cpp_10_bin__iterators : 3344 units (3.344 secs)
Run-3 of 3 : Finished
#################
File size = 10000
#################
=======================================
Simple C/C++ Perfometer : Copying files
Version CF-1.4
=======================================
----------------------
GNU gcc 3.3.1 (CYGWIN)
----------------------
YOUR COMMAND LINE : a 10000 5 730 3
### File size : 10000
### Number of runs : 3
### Number of tests : 5
### Number of repetitions : 730
### CLOCKS_PER_SEC : 1000
Run-1 of 3 : Started .....
C_01_txt__functions_getc_putc : 363 units (0.363 secs)
C_01_bin__functions_getc_putc : 310 units (0.310 secs)
C_02_txt__functions_fgetc_fputc : 377 units (0.377 secs)
C_02_bin__functions_fgetc_fputc : 310 units (0.310 secs)
C_03_txt__functions_fread_fwrite : 303 units (0.303 secs)
C_03_bin__functions_fread_fwrite : 83 units (0.083 secs)
unix_C_04_txt__mmap : 143 units (0.143 secs)
cpp_01_txt__operators_in_out : 27826 units (27.826 secs)
cpp_01_bin__operators_in_out : 41225 units (41.225 secs)
cpp_02_txt__methods_get_put : 26962 units (26.962 secs)
cpp_02_bin__methods_get_put : 22545 units (22.545 secs)
cpp_03_txt__methods_sbumpc_sputc : 2163 units (2.163 secs)
cpp_03_bin__methods_sbumpc_sputc : 1488 units (1.488 secs)
cpp_04_txt__method_sbumpc__op_out : 1044 units (1.044 secs)
cpp_04_bin__method_sbumpc__op_out : 354 units (0.354 secs)
cpp_05_txt__method_rdbuf__op_out : 1041 units (1.041 secs)
cpp_05_bin__method_rdbuf__op_out : 340 units (0.340 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 1075 units (1.075 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 360 units (0.360 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 1068 units (1.068 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 364 units (0.364 secs)
cpp_08_txt__method_getline : 16717 units (16.717 secs)
cpp_08_bin__method_getline : 15629 units (15.629 secs)
cpp_09_txt__method_ifstream_getline : 1649 units (1.649 secs)
cpp_09_bin__method_ifstream_getline : 954 units (0.954 secs)
cpp_10_txt__iterators : 39927 units (39.927 secs)
cpp_10_bin__iterators : 45151 units (45.151 secs)
Run-1 of 3 : Finished
Run-2 of 3 : Started .....
C_01_txt__functions_getc_putc : 921 units (0.921 secs)
C_01_bin__functions_getc_putc : 831 units (0.831 secs)
C_02_txt__functions_fgetc_fputc : 954 units (0.954 secs)
C_02_bin__functions_fgetc_fputc : 814 units (0.814 secs)
C_03_txt__functions_fread_fwrite : 805 units (0.805 secs)
C_03_bin__functions_fread_fwrite : 230 units (0.230 secs)
unix_C_04_txt__mmap : 404 units (0.404 secs)
cpp_01_txt__operators_in_out : 50058 units (50.058 secs)
cpp_01_bin__operators_in_out : 44247 units (44.247 secs)
cpp_02_txt__methods_get_put : 26428 units (26.428 secs)
cpp_02_bin__methods_get_put : 21714 units (21.714 secs)
cpp_03_txt__methods_sbumpc_sputc : 2043 units (2.043 secs)
cpp_03_bin__methods_sbumpc_sputc : 1478 units (1.478 secs)
cpp_04_txt__method_sbumpc__op_out : 1015 units (1.015 secs)
cpp_04_bin__method_sbumpc__op_out : 340 units (0.340 secs)
cpp_05_txt__method_rdbuf__op_out : 1001 units (1.001 secs)
cpp_05_bin__method_rdbuf__op_out : 344 units (0.344 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 1071 units (1.071 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 357 units (0.357 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 1048 units (1.048 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 344 units (0.344 secs)
cpp_08_txt__method_getline : 16206 units (16.206 secs)
cpp_08_bin__method_getline : 13099 units (13.099 secs)
cpp_09_txt__method_ifstream_getline : 1024 units (1.024 secs)
cpp_09_bin__method_ifstream_getline : 570 units (0.570 secs)
cpp_10_txt__iterators : 26842 units (26.842 secs)
cpp_10_bin__iterators : 35057 units (35.057 secs)
Run-2 of 3 : Finished
Run-3 of 3 : Started .....
C_01_txt__functions_getc_putc : 874 units (0.874 secs)
C_01_bin__functions_getc_putc : 754 units (0.754 secs)
C_02_txt__functions_fgetc_fputc : 877 units (0.877 secs)
C_02_bin__functions_fgetc_fputc : 804 units (0.804 secs)
C_03_txt__functions_fread_fwrite : 781 units (0.781 secs)
C_03_bin__functions_fread_fwrite : 226 units (0.226 secs)
unix_C_04_txt__mmap : 388 units (0.388 secs)
cpp_01_txt__operators_in_out : 47234 units (47.234 secs)
cpp_01_bin__operators_in_out : 41560 units (41.560 secs)
cpp_02_txt__methods_get_put : 18322 units (18.322 secs)
cpp_02_bin__methods_get_put : 12578 units (12.578 secs)
cpp_03_txt__methods_sbumpc_sputc : 1144 units (1.144 secs)
cpp_03_bin__methods_sbumpc_sputc : 825 units (0.825 secs)
cpp_04_txt__method_sbumpc__op_out : 543 units (0.543 secs)
cpp_04_bin__method_sbumpc__op_out : 183 units (0.183 secs)
cpp_05_txt__method_rdbuf__op_out : 547 units (0.547 secs)
cpp_05_bin__method_rdbuf__op_out : 176 units (0.176 secs)
cpp_06_txt__methods_cpp_read_write__const_buf : 571 units (0.571 secs)
cpp_06_bin__methods_cpp_read_write__const_buf : 196 units (0.196 secs)
cpp_07_txt__methods_cpp_read_write__max_buf : 557 units (0.557 secs)
cpp_07_bin__methods_cpp_read_write__max_buf : 176 units (0.176 secs)
cpp_08_txt__method_getline : 11707 units (11.707 secs)
cpp_08_bin__method_getline : 12478 units (12.478 secs)
cpp_09_txt__method_ifstream_getline : 1565 units (1.565 secs)
cpp_09_bin__method_ifstream_getline : 854 units (0.854 secs)
cpp_10_txt__iterators : 46417 units (46.417 secs)
cpp_10_bin__iterators : 46182 units (46.182 secs)
Run-3 of 3 : Finished
================ Performance tests : END ==================
--
Alex Vinokur
mailto:alexvn <at> connect.to
http://mathforum.org/library/view/10978.html
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
|
|
|