BDE 3.94.0 Release¶
Schedule¶
The BDE team announces that the BDE 3.94.0 production release was completed on Tuesday, November 23, 2021.
BDE 3.94.0 Highlights¶
Update to Internal Pooling of BALL Log Records¶
The way in which BALL log records are pooled internally was changed to eliminate a memory allocation that occurred for each log message. Removal of this undesirable allocation was vetted for potential adverse performance effects via a microbenchmark. See the Timings for Old vs. New Pooling of BALL Log Records section at the end of these release notes for details.
Fixed requests: 3.94.0¶
Summary |
---|
Update BALL to pool memory for bsl::shared_ptr<ball::Record> objects |
Benchmark pooling ball log streams |
support type conversion for ManagedPtr |
baljsn_datumutil incorrectly decodes escaped forward-slash in object keys |
‘balcl_commandline’: runtime error observed. |
a_cdb2: convert deprecated types. |
Is the example copyright epilogue block in the coding standards up to date? |
bsls::SystemTime::nowMonotonicClock() - specify in terms of std::chrono::steady_clock |
Add buffer sizes to NumericFormatterUtil |
‘bslh_hashpair.t.cpp’: Nightly build issues |
Please move away from python3 symlink - bdebuild |
Test failure bslalg_numericformatterutil.t.cpp w/ Linux C++03 |
Release BDE 3.94.0 |
Timings for Old vs. New Pooling of BALL Log Records¶
The microbenchmark consisted of a function that logs (via a ball_log
macro)
100K messages in a tight loop, either recording all of them or publishing all
of them.
This function was executed within 1 to 10 threads on IBM, Linux, Sun, and
Windows.
The numbers shown in the following two tables are elapsed times in seconds,
with the times for the previous release on the lefthand side of the arrows.
The three entries for Sun marked with * are the only ones showing an
adverse effect from the new pooling strategy.
Timings When All Log Messages Are Recorded¶
# of threads |
IBM |
Linux |
Sun |
Windows |
1 |
1.06 → 0.88 |
0.75 → 0.62 |
* 2.12 → 2.83 |
0.40 → 0.29 |
2 |
3.96 → 1.37 |
2.84 → 1.46 |
3.64 → 3.42 |
2.07 → 0.66 |
3 |
6.18 → 2.06 |
4.04 → 2.27 |
4.82 → 3.90 |
3.83 → 1.23 |
4 |
8.31 → 2.98 |
5.00 → 3.40 |
6.78 → 4.22 |
5.35 → 1.62 |
5 |
10.24 → 4.84 |
5.87 → 4.24 |
8.41 → 4.57 |
7.22 → 1.98 |
6 |
13.11 → 6.64 |
6.26 → 4.85 |
8.28 → 5.15 |
8.19 → 2.73 |
7 |
15.06 → 8.36 |
6.71 → 5.61 |
8.67 → 6.59 |
9.87 → 3.21 |
8 |
19.22 → 10.93 |
7.14 → 6.89 |
11.24 → 8.20 |
11.63 → 3.43 |
9 |
20.45 → 12.93 |
7.78 → 7.33 |
13.78 → 9.43 |
13.4 → 3.92 |
10 |
24.84 → 15.79 |
8.43 → 7.84 |
16.21 → 10.47 |
14.66 → 4.33 |
Timings When All Log Messages Are Published¶
# of threads |
IBM |
Linux |
Sun |
Windows |
1 |
1.13 → 0.94 |
0.71 → 0.71 |
* 2.34 → 3.13 |
0.43 → 0.32 |
2 |
3.00 → 1.43 |
1.69 → 1.61 |
* 3.63 → 3.84 |
1.49 → 0.53 |
3 |
4.26 → 2.06 |
2.66 → 1.94 |
4.78 → 4.07 |
2.38 → 0.87 |
4 |
6.51 → 2.46 |
3.72 → 2.53 |
5.67 → 4.43 |
3.14 → 1.31 |
5 |
9.46 → 3.17 |
4.66 → 2.92 |
8.40 → 4.59 |
3.77 → 1.64 |
6 |
11.62 → 3.73 |
5.64 → 3.34 |
11.08 → 4.85 |
4.73 → 1.97 |
7 |
15.16 → 5.30 |
6.61 → 3.32 |
13.57 → 4.97 |
5.95 → 2.52 |
8 |
18.06 → 7.01 |
7.78 → 3.85 |
16.56 → 5.24 |
7.49 → 3.03 |
9 |
22.09 → 8.96 |
9.24 → 4.38 |
18.09 → 5.71 |
8.45 → 3.49 |
10 |
25.22 → 10.68 |
12.88 → 5.00 |
20.68 → 7.13 |
9.43 → 4.10 |