Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Testing VB performance against VFP
Message
General information
Forum:
Visual Basic
Category:
Other
Miscellaneous
Thread ID:
00583110
Message ID:
00585779
Views:
25
I just came across the following REALLY USEFUL tip on InStep technologies' website. It won't always apply, but I think that for Claudio's case, it might work!

---------------------------------------------------------------
FROM http://www.insteptech.com/VBLang.htm
---------------------------------------------------------------
Why is my string handling so slow?
Visual Basic Version: All

Issue: My application is performing poorly. When I evaluated where the problems were, I found it to be in the string handling. Why is my string handling so slow and what can I do about it?

The following tidbit of information is from the new book: "VB Developer's Guide to ASP and IIS" (Sybex) by Russell Jones. "...VB must allocate memory and create a new string every time you concatenate two strings together. The longer the two strings are, the more memory (and time) it takes to concatenate them. By using shorter strings or byte arrays, you can often dramatically speed up a routine with very little work."

Another tip from Jones, if you need to concatenate many different string elements into a large string you can get better performance by building each string individually and concatenating all of them at the same time.

Another option is to use the MID$ function. This would work as follows:

' Prepare the length of the string
' This is critical for performance reasons
sLargeString = Space$(rs.RecordCount * 52)
lPos = 1

' Copy each field from the recordset to a UDT
' and append this all to a very long string
Do Until rs.EOF
udtTeamDetail.TeamID = rs!TeamID
udtTeamDetail.TeamName = rs!TeamName & ""
udtTeamDetail.TeamGames = Val(rs!TeamGames & "")
udtTeamDetail.TeamWins = Val(rs!TeamWins & "")

LSet udtTeamSummary = udtTeamDetail
Mid$(sLargeString, lPos, 52) = udtTeamSummary.TeamBuffer
lPos = lPos + lUDT

rs.MoveNext
Loop

---------------------------------------------------------------
The whole problem with the world is that fools and fanatics are always so certain of themselves, but wiser people so full of doubts. - Bertrand Russell
Previous
Reply
Map
View

Click here to load this message in the networking platform