Assign: new benchmarks
Paolo Carlini
pcarlini@unitus.it
Sat Dec 15 07:33:00 GMT 2001
Hi,
this are the benchmarks for the current (take3) patch for assign(__srt, __pos,
__n) and for assign(__s, __n). As usual, PII-400, linux2.4.16, glibc2.2.4.
Pretty good :-)
Cheers,
Paolo.
//////////////////////////////////////////////////////
assign(__srt, __pos, __n)
-------------------------
-------------------------
"self"
------
mainline + take3 patch
----------------------
5.020u 0.010s 0:05.11 98.4% 0+0k 0+0io 203pf+0w
2.95.3
------
7.430u 0.000s 0:07.54 98.5% 0+0k 0+0io 93pf+0w
mainline
--------
12.540u 0.010s 0:12.78 98.2% 0+0k 0+0io 201pf+0w
"shared"
--------
mainline + take3 patch
----------------------
7.480u 0.010s 0:07.59 98.6% 0+0k 0+0io 202pf+0w
2.95.3
------
8.540u 0.000s 0:08.68 98.3% 0+0k 0+0io 93pf+0w
mainline
--------
13.700u 0.040s 0:13.92 98.7% 0+0k 0+0io 201pf+0w
"unshared"
----------
mainline + take3 patch
----------------------
6.400u 0.030s 0:06.51 98.7% 0+0k 0+0io 203pf+0w
2.95.3
------
7.930u 0.000s 0:08.06 98.3% 0+0k 0+0io 93pf+0w
mainline
--------
12.690u 0.010s 0:12.95 98.0% 0+0k 0+0io 201pf+0w
assign(__s, __n)
----------------
----------------
#include <string>
int main()
{
std::string one;
for (int i = 0; i < 2000000; ++i)
{
one = "12345678901234567890123456789012345678901234567890"
"12345678901234567890123456789012345678901234567890";
one.assign(one.c_str()+19, 80);
one.assign(one.c_str()+9, 60);
one.assign(one.c_str()+39, 10);
one.assign(one.c_str(), 10);
}
}
mainline + patch
----------------
5.120u 0.010s 0:05.20 98.6% 0+0k 0+0io 203pf+0w
2.95.3
------
7.510u 0.010s 0:07.64 98.4% 0+0k 0+0io 93pf+0w
mainline
--------
12.960u 0.010s 0:13.16 98.5% 0+0k 0+0io 201pf+0w
/////////
#include <string>
int main()
{
std::string one, two;
const char * source= "12345678901234567890123456789012345678901234567890"
"12345678901234567890123456789012345678901234567890";
for (int i = 0; i < 2000000; ++i)
{
two = one;
one.assign(source+19, 80);
one.assign(source+9, 60);
one.assign(source+39, 10);
one.assign(source, 10);
}
}
mainline + patch
----------------
4.790u 0.030s 0:04.87 98.9% 0+0k 0+0io 202pf+0w
2.95.3
------
5.910u 0.020s 0:06.02 98.5% 0+0k 0+0io 93pf+0w
mainline
--------
9.460u 0.020s 0:09.61 98.6% 0+0k 0+0io 200pf+0w
///////////
#include <string>
int main()
{
std::string one;
for (int i = 0; i < 2000000; ++i)
{
const char* source = "12345678901234567890123456789012345678901234567890"
"12345678901234567890123456789012345678901234567890";
one.assign(source+19, 80);
one.assign(source+9, 60);
one.assign(source+39, 10);
one.assign(source, 10);
}
}
mainline + patch
----------------
3.810u 0.010s 0:03.87 98.7% 0+0k 0+0io 203pf+0w
2.95.3
------
5.740u 0.000s 0:05.85 98.1% 0+0k 0+0io 93pf+0w
mainline
--------
8.540u 0.010s 0:08.66 98.7% 0+0k 0+0io 201pf+0w
More information about the Libstdc++
mailing list