stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "mark.g.brown" <mark.g.br...@gmail.com>
Subject [PATCH] for string::append(const_pointer)
Date Sun, 22 Jul 2007 23:27:11 GMT
Hi,

I have been working on a fix for STDCXX-493. The attached patch tries to
improve both the const_pointer and string overloads but makes no attempt
to do anything with the value_type overload. I was successful in making
the const_pointer overload run faster (about 6 times faster than in the
submitted test), but for some reason the patch doesn't help the string
overload. I'm fresh out of ideas at the moment and would welcome help
with it.

$ let n=0; while [ $n -lt 3 ]; do time ./append-stdcxx-patched 500000000 
$n; let n=`expr $n + 1`; done
std::string::append(size_type, value_type)

real    0m11.198s
user    0m10.109s
sys     0m1.036s
std::string::append(const_pointer)

real    0m2.934s
user    0m1.720s
sys     0m1.208s
std::string::append(const std::string&)

real    0m7.886s
user    0m6.724s
sys     0m1.132s

$ let n=0; while [ $n -lt 3 ]; do time LD_LIBRARY_PATH=../lib 
./append-stdcxx-4.1.3 500000000 $n; let n=`expr $n + 1`; done
std::string::append(size_type, value_type)

real    0m10.425s
user    0m9.301s
sys     0m1.128s
std::string::append(const_pointer)

real    0m12.965s
user    0m11.829s
sys     0m1.132s
std::string::append(const std::string&)

real    0m8.017s
user    0m6.832s
sys     0m1.184s

$ let n=0; while [ $n -lt 3 ]; do time ./append-gcc-4.1.2 500000000 $n; 
let n=`expr $n + 1`; done
std::string::append(size_type, value_type)

real    0m4.369s
user    0m3.764s
sys     0m0.604s
std::string::append(const_pointer)

real    0m4.551s
user    0m3.884s
sys     0m0.668s
std::string::append(const std::string&)

real    0m5.097s
user    0m4.412s
sys     0m0.684s

-- Mark

Mime
View raw message