Speed up String Operations

Speed up String Operations

It’s often faster to perform string operations with byte arrays than with 32-bit VB’s native double-byte character strings. Even when using 16-bit VB4’s single-byte character strings, it’s still often faster to convert to byte arrays before intense processing. Compare the speed at which these two procedures execute and you’ll be amazed. Paste this code into the default form of a new project to see the difference:

 Private Sub Form_Click()	Dim s As String	Dim i As Integer	s = String$(50000, "1")	Debug.Print Time	For i = 1 To 100		Call countCharString(s, Asc("1"))	Next	Debug.Print Time	For i = 1 To 100		Call countCharByte(s, Asc("1"))	Next	Debug.Print TimeEnd SubFunction countCharString(s As String, _	charASCIIValue As Integer) As Long	Dim i As Long	For i = 1 To Len(s)		If Asc(Mid$(s, i, 1)) = charASCIIValue Then			countCharString = countCharString + 1		End If	NextEnd FunctionFunction countCharByte(s As String, _	charASCIIValue As Integer) As Long	Dim b() As Byte	Dim i As Long	#If Win32 Then		b = StrConv(s, vbFromUnicode)	#Else		b = s	#End If	For i = 0 To UBound(b)		If b(i) = charASCIIValue Then			countCharByte = countCharByte + 1		End If	NextEnd Function

This optimization doesn’t apply to all string operations. Depending on the nature of your problem, you’ll see anything from fantastic improvement to slight degradation. Be sure to test both ways.

See also  Small Business Strategies with Venmo

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist