有关字符比较(30分)

savl 2003-05-15 08:08:38
对于下面代码字符串比较所耗的时间,谁能做详细一点的解释,看.net的帮助还是不明白。
Sub Main()
Const NUM_ITER As Integer = 10000000
Dim result As Integer

Dim str1 As String = "satisfaction"
Dim str2 As String = "satisfaction"
Dim startTime As Integer
Dim endTime As Integer
Dim count As Integer

startTime = Environment.TickCount
For count = 1 To NUM_ITER
result = String.Compare(str1, str2)
Next
endTime = Environment.TickCount
Console.WriteLine("Compare: " & CStr(endTime - startTime))
’结果是5148

startTime = Environment.TickCount
For count = 1 To NUM_ITER
result = str1.CompareTo(str2)
Next
endTime = Environment.TickCount
Console.WriteLine("CompareTo: " & CStr(endTime - startTime))
’结果是6479
startTime = Environment.TickCount
For count = 1 To NUM_ITER
result = String.CompareOrdinal(str1, str2)
Next
endTime = Environment.TickCount
Console.WriteLine("CompareOrdinal: " & CStr(endTime-startTime))
’结果是1212
startTime = Environment.TickCount
For count = 1 To NUM_ITER
result = str1.Equals(str2)
Next
endtime = Environment.TickCount
Console.WriteLine("Equals (instance): " & CStr(endTime-startTime))
’结果是971
startTime = Environment.TickCount
For count = 1 To NUM_ITER
result = String.Equals(str1, str2)
Next
endTime = Environment.TickCount
Console.WriteLine("Equals (shared): " & CStr(endTime-startTime))
’结果是270
End Sub
...全文
39 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
savl 2003-05-16
  • 打赏
  • 举报
回复
UP
szch 2003-05-15
  • 打赏
  • 举报
回复
VB中不同的算法效率的确相差很大。
lx1920 2003-05-15
  • 打赏
  • 举报
回复
你试试object的ReferenceEquals方法,这个应该是最快的。
object.ReferenceEquals(str1,str2)
参见ms-help://MS.NETFrameworkSDK.CHS/cpref/html/frlrfsystemobjectclassreferenceequalstopic.htm
fishsward 2003-05-15
  • 打赏
  • 举报
回复
强烈关注,帮你up

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧