Re: Fwd: Re: STDCXX-1071 numpunct facet defect

2012-10-21 Thread Liviu Nicoara
On 10/03/12 11:10, Martin Sebor wrote: [...] I was just thinking of a few simple loops along the lines of: tl;dr: I consider the results of the multi-threaded performance tests (12S, Intel/AMD multicores) as coming from heavy contention in copying of reference-counted std::string objects.

Re: [PATCH] STDCXX-1073

2012-10-21 Thread Martin Sebor
The library patch seems correct but the test case in the issue and the new test aren't strictly conforming. The only requirement on collate::tranform() is that it return... A basic_stringcharT value that, compared lexicographically with the result of calling transform() on another

Re: [PATCH] STDCXX-1073

2012-10-21 Thread Liviu Nicoara
On 10/21/12 19:08, Martin Sebor wrote: There's no requirement that embedded NULs must be preserved (that's just how it happens to be implemented). I find it best to avoid relying on the knowledge of implementation details when exercising the library so that tests don't start failing after a

std::string reference counting performance

2012-10-21 Thread Liviu Nicoara
Hi all, I ran the attached test case, s.cpp, and timed it: * Deep copy $ for f in 16 8 6 4 2 1; do time ./s $f 1; done 16 0m39.292s 2m34.381s 0m0.035s 8 0m20.573s 1m18.131s 0m0.025s 6 0m15.037s 0m58.269s 0m0.009s 4 0m9.973s

Re: std::string reference counting performance

2012-10-21 Thread Liviu Nicoara
On 10/21/12 21:11, Liviu Nicoara wrote: Hi all, I ran the attached test case, s.cpp, and timed it: Gosh darn it, attached the wrong files. Here are the right ones. Liviu * Deep-copy $ for f in 16 8 6 4 2 1; do time ./s $f 1; done 16 0m39.292s 2m34.381s 0m0.035s 8

Re: std::string reference counting performance

2012-10-21 Thread Liviu Nicoara
On 10/21/12 21:44, Liviu Nicoara wrote: On 10/21/12 21:11, Liviu Nicoara wrote: Hi all, I ran the attached test case, s.cpp, and timed it: Gosh darn it, attached the wrong files. Here are the right ones. Made the same mistake twice. My apologies for the clutter. Here are the right ones.

Re: std::string reference counting performance

2012-10-21 Thread Martin Sebor
This is a known problem. The plan is to change the default string implementation in thread-safe configurations in 5.0 from reference counted to deep copying. Until then, it's a library configuration option that must be explicitly enabled. There should be a Jira task to make this change. Martin