stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: [PATCH] for string::append(const_pointer)
Date Tue, 14 Aug 2007 15:35:54 GMT
mark.g.brown wrote:
> 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.

Thanks for the patch, Mark! I haven't had time to test it or to
try to get to the bottom of the discrepancy you're seeing. Let
me see if I can squeeze into my schedule this week. If someone
else has some time to spare and wants to test the patch or look
into how to speed up the troublesome overload that would be
awesome.

Martin

> 
> $ 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