Members

Technology Zones

IBM Learning Center

Articles

Hosted By

MaximumASP

Info

Rated
Read 37,242 times

Contents

Downloads

Related Categories

String Concatenation Component - Test Code

streamload

Test Code

The following is the test code used to generate the performance results displayed earlier in this article.

Private Sub TestCat()
    Dim test_str As String
    test_str = "foo foo bar"
    TestCatFor 1, test_str
    TestCatFor 5, test_str
    TestCatFor 10, test_str
    TestCatFor 25, test_str
    TestCatFor 50, test_str
    TestCatFor 100, test_str
    TestCatFor 200, test_str
    TestCatFor 500, test_str
    TestCatFor 1000, test_str
    TestCatFor 2000, test_str
    'TestCatFor 5000, test_str
    'TestCatFor 10000, test_str

    test_str = "asd;fjas;dlfu =8-081254j kuva nfajoiruawior "
    TestCatFor 1, test_str
    TestCatFor 5, test_str
    TestCatFor 10, test_str
    TestCatFor 25, test_str
    TestCatFor 50, test_str
    TestCatFor 100, test_str
    TestCatFor 200, test_str
    TestCatFor 500, test_str
    TestCatFor 1000, test_str
    TestCatFor 2000, test_str
    'TestCatFor 5000, test_str
    'TestCatFor 10000, test_str

    test_str = "asd;fjas;dlfu =8-081254j kuva nfajoiruawior " _
"asd;fjas;dlfu =8-081254j kuva nfajoiruawior asd;fjas;dlfu " _
"=8-081254j kuva nfajoiruawior asd;fjas;dlfu =8-081254j kuva nfajoiruawior " TestCatFor 1, test_str TestCatFor 5, test_str TestCatFor 10, test_str TestCatFor 25, test_str TestCatFor 50, test_str TestCatFor 100, test_str TestCatFor 200, test_str TestCatFor 500, test_str TestCatFor 1000, test_str TestCatFor 2000, test_str 'TestCatFor 5000, test_str 'TestCatFor 10000, test_str test_str = "asd;fjas;dlfu =8-081254j kuva nfajoiruawior " _
"asd;fjas;dlfu =8-081254j kuva nfajoiruawior asd;fjas;dlfu " _
"=8-081254j kuva nfajoiruawior asd;fjas;dlfu =8-081254j kuva nfajoiruawior " _
"asd;fjas;dlfu =8-081254j kuva nfajoiruawior asd;fjas;dlfu =8-081254j kuva " _
"nfajoiruawior asd;fjas;dlfu =8-081254j kuva nfajoiruawior asd;fjas;dlfu " _
"=8-081254j kuva nfajoiruawior asd;fjas;dlfu =8-081254j kuva nfajoiruawior " _
"asd;fjas;dlfu =8-081254j kuva nfajoiruawior asd;fjas;dlfu =8-081254j kuva nfajoiruawior " TestCatFor 1, test_str TestCatFor 5, test_str TestCatFor 10, test_str TestCatFor 25, test_str TestCatFor 50, test_str TestCatFor 100, test_str TestCatFor 200, test_str TestCatFor 500, test_str TestCatFor 1000, test_str TestCatFor 2000, test_str 'TestCatFor 5000, test_str 'TestCatFor 10000, test_str End Sub Private Sub TestCatFor(ByVal iters As Long, ByVal testStr As String) Dim prof As Object Set prof = CreateObject("Softwing.Profiler") Dim i As Long Dim max_i As Long max_i = iters ' Go traditional. prof.ProfileStart Dim str As String For i = 0 To max_i str = str & testStr Next Dim slow_ms As Double slow_ms = prof.ProfileStop ' Go cat. prof.ProfileStart Dim strcat As Catter Set strcat = New Catter For i = 0 To max_i strcat testStr Next Dim cat_str cat_str = strcat.Dump ' Clean up the catter. Set strcat = Nothing ' Stop the clock. Dim cat_slow_ms As Double cat_slow_ms = prof.ProfileStop ' Check that CAT did the same as traditional. Debug.Assert cat_str = str ' Clean up the profiler. Set prof = Nothing ' Output results. Debug.Print iters & " Run (" & Len(testStr) & "): " & _
FormatNumber(slow_ms / 10) & " vs. " & FormatNumber(cat_slow_ms / 10) End Sub

Shameless Plug
These and many other cutting-edge techniques power Streamload.com, a digital entertainment delivery site offering unlimited free online stora

Comments

  • ASP can be fast, too.

    Posted by Dogbite on 06 Jun 2003

    A great idea! You can also reduce concatenation times by using arrays and the built-in Join() function. No components required. Similar performance gain. Very readable syntax (once you understand ...