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