Issue Details (XML | Word | Printable)

Key: STDCXX-928
Type: Improvement Improvement
Status: Open Open
Priority: Critical Critical
Assignee: Unassigned
Reporter: Martin Sebor
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
C++ Standard Library

[HP aCC 6.10] native library faster than stdcxx 4.2.1

Created: 08/May/08 11:22 PM   Updated: 15/May/08 08:11 PM
Return to search
Component/s: 23. Containers, 25. Algorithms
Affects Version/s: 4.2.1
Fix Version/s: 4.3.0

Time Tracking:
Original Estimate: 24h
Original Estimate - 24h
Remaining Estimate: 24h
Remaining Estimate - 24h
Time Spent: Not Specified
Remaining Estimate - 24h

Severity: Inefficiency


 Description  « Hide
When compiled with HP aCC 6.10 on HP-UX 11.23/IPF and stdcxx 4.2.1 the Stepanov and Stroustup's Standard Container Benchmark runs with the following output.
size array vector<T*> vector<iterator> deque list set multiset
10 1.11 1.35 1.34 3.79 3.76 2.41 3.24
100 0.47 0.50 0.50 1.38 1.92 1.07 1.62
1000 0.45 0.48 0.47 1.25 1.56 0.82 1.17
10000 0.45 0.47 0.47 1.23 1.63 0.78 1.09
100000 0.50 0.51 0.51 1.41 3.65 1.29 2.36
1000000 0.56 0.58 0.58 1.51 7.08 3.60 4.62

Total runtimes:

real    1m6.370s
user    1m5.920s
sys     0m0.130s

When compiled with the same compiler but the native C++ Standard Library the same benchmarks runs with the output below. Note that in most cases the times in this table are better than in the one above.

size array vector<T*> vector<iterator> deque list set multiset
10 1.06 1.11 1.12 4.00 3.49 2.35 3.05
100 0.46 0.47 0.47 1.38 1.80 0.98 1.51
1000 0.44 0.45 0.44 1.09 1.46 0.75 1.11
10000 0.42 0.43 0.43 0.97 1.54 0.73 1.02
100000 0.47 0.45 0.46 0.99 3.57 1.25 2.32
1000000 0.51 0.52 0.50 1.02 6.83 3.54 4.70

Total runtimes:

real    1m3.320s
user    1m2.800s
sys     0m0.140s


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Martin Sebor added a comment - 08/May/08 11:35 PM
Similar results with aCC 6.14:
aCC 6.14 +O2, HP-UX 11.31, 1.6GHz Itanium II, stdcxx 4.1.2 (12d build type)
size array vector<T*> vector<iterator> deque list set multiset
10 0.74 0.86 0.86 2.58 2.71 1.78 2.46
100 0.39 0.42 0.43 1.12 1.58 0.92 1.40
1000 0.39 0.42 0.41 1.05 1.34 0.74 1.06
10000 0.39 0.41 0.41 1.05 1.40 0.71 0.98
100000 0.41 0.42 0.42 1.14 1.88 0.92 1.33
1000000 0.45 0.46 0.45 1.23 4.01 2.01 2.88

Runtimes:

real    0m47.524s
user    0m47.210s
sys     0m0.140s

and

aCC 6.14 -AA +O2 -mt, HP-UX 11.31, 1.6GHz Itanium II, libstd_v2 2.2.1
size array vector<T*> vector<iterator> deque list set multiset
10 0.70 0.72 0.72 2.52 2.47 1.48 2.08
100 0.42 0.43 0.42 1.07 1.45 0.78 1.20
1000 0.38 0.39 0.38 0.88 1.24 0.64 0.92
10000 0.37 0.38 0.38 0.78 1.33 0.63 0.86
100000 0.38 0.38 0.38 0.74 1.87 0.79 1.19
1000000 0.41 0.40 0.40 0.80 4.14 1.89 2.77

Runtimes:

real    0m43.061s
user    0m42.920s
sys     0m0.120s

Martin Sebor added a comment - 09/May/08 12:21 AM - edited
See also this remotely relevant post.

Martin Sebor added a comment - 15/May/08 08:11 PM
Let's try to look into why we're slower in the 4.3 timeframe.
Taking a SWAG at the effort involved...