You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/09/07 16:45:31 UTC
[jira] Updated: (STDCXX-493) std::string::append() slow
[ https://issues.apache.org/jira/browse/STDCXX-493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor updated STDCXX-493:
--------------------------------
Fix Version/s: 4.2
(Tentatively) scheduled for 4.2.
> std::string::append() slow
> --------------------------
>
> Key: STDCXX-493
> URL: https://issues.apache.org/jira/browse/STDCXX-493
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 21. Strings
> Affects Versions: 4.1.3
> Environment: gcc 4.1.2 on Linux/x86_64
> Reporter: Mark Brown
> Assignee: Travis Vitek
> Fix For: 4.2
>
>
> This is a similar problem to STDCXX-492: all overloads of string::append() are slower than the same overloads in gcc:
> $ 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
> real 0m11.221s
> user 0m9.941s
> sys 0m1.104s
> real 0m13.065s
> user 0m11.661s
> sys 0m1.236s
> real 0m7.837s
> user 0m6.660s
> sys 0m1.160s
> $ let n=0; while [ $n -lt 3 ]; do time ./append-gcc-4.1.2 500000000 $n; let n=`expr $n + 1`; done
> real 0m4.865s
> user 0m4.172s
> sys 0m0.692s
> real 0m7.617s
> user 0m6.920s
> sys 0m0.696s
> real 0m5.787s
> user 0m5.068s
> sys 0m0.720s
> The program I used to do the comaprison is below:
> #include <cassert>
> #include <cstdlib>
> #include <string>
> int main (int argc, char *argv[])
> {
> const int N = argc < 2 ? 1 : std::atoi (argv [1]);
> const int op = argc < 3 ? 0 : std::atoi (argv [2]);
> std::string str;
> const std::string x ("X");
> if (op == 0) {
> for (int i = 0; i < N; ++i)
> str.append (1, 'x');
> } else if (op == 1) {
> for (int i = 0; i < N; ++i)
> str.append ("x");
> } else {
> for (int i = 0; i < N; ++i)
> str.append (x);
> }
> assert (str.size () == std::size_t (N));
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.