| |
|
|
Performance comparision
The tables below summarize the times (in milliseconds) of a performance test for
various operations that take up the bulk of most string management in an
average business application.
Unicode timings
|
Str Library |
STL basic_string |
MFC CString |
| Object construction |
865
|
1800
|
2280
|
| String assignment |
1050
|
1850
|
2480
|
| Get string or character |
615
|
1540
|
1570
|
| Concatenation |
1180
|
1230
|
1130
|
| String scanning |
630
|
1570
|
760
|
ANSI timings
|
Str Library |
STL basic_string |
MFC CString |
| Object construction |
780
|
1760
|
2140
|
| String assignment |
760
|
1640
|
2860
|
| Get string or character |
590
|
3530
|
1510
|
| Concatenation |
785
|
775
|
770
|
| String scanning |
745
|
1510
|
890
|
Conditions under which the tests were taken:
-
Compiler:
Microsoft Visual C++ .NET 2003 (aka 8.0), version of STL shipped with the
compiler, CStringT class shipped with MFC and ATL; release build, optimize for
speed (/O2)
-
Hardware:
AMD Thunderbird (Athlon family) 950 MHz, 100MHz front bus
-
Software:
Windows 2000 Server
-
To have a fair comparision, Str Library was compiled in thread-safe mode.
If support for multithreading is turned off, results (esp. in object
construction and string concatenation) are even better.
Str Library outperforms significantly the other two alternatives, except in the
area of string concatenation where the three implementations come very close.
See for yourself - download the
test suite source code. (Note: after you download the test suite, be sure
to run Add Str Wizard against the decompressed source, in order to install the
newest version of the product)
| |