webForumDet fria alternativet

Jämföra värde vs. jämföra längd???

.NET

5 svar · 575 visningar · startad av Andreas L

Medlem sedan sep. 2000215 inlägg
Frågan#1

Kort fråga gällande vb.net

Är det snabbare att jämföra längden på två strängar, än att jämföra värdena hos två strängar? Skiljer det möjligtvis mycket?

x=y jämfört med len.length= len.length

har inga bra tidsmätare för att jämföra, så jag hoppas på ett snabbt svar här istället.

Medlem sedan dec. 19996 721 inlägg
#2

Det går snabbare att jämföra längderna, men det är ju inte riktigt samma sak.

Medlem sedan sep. 2000215 inlägg
#3

Tack för svaret emission!

Nej, det är inte samma sak, men om jag vet att strängarna inte är lika långa, så behöver jag ju inte heller kontrollera om deras värden är lika.

Medlem sedan jan. 2007152 inlägg
#4

Andreas L skrev:

Nej, det är inte samma sak, men om jag vet att strängarna inte är lika långa, så behöver jag ju inte heller kontrollera om deras värden är lika.

Men om längden är lika så kommer du ju att göra två jämförelser - längden först och sedan innehållet på det. Så huruvida du tjänar prestanda beror ju i så fall på hur ofta längderna är lika... bara en tanke. :)

Medlem sedan juni 20008 205 inlägg
#5

butiko skrev:

Men om längden är lika så kommer du ju att göra två jämförelser - längden först och sedan innehållet på det. Så huruvida du tjänar prestanda beror ju i så fall på hur ofta längderna är lika... bara en tanke. :)

En giltig synpunkt, men kostnaden att jämföra längden är jämförbar med att jämföra två tecken med varann, så det enda scenariot där det egentligen påverkar prestandan negativt är när man jämför väldigt korta strängar som oftast är lika långa. När strängarna blir lite längre är den relativa kostnaden för längdjämförelsen så liten att den knappt spelar någon roll.

Medlem sedan sep. 2000215 inlägg
#6

spango skrev:

En giltig synpunkt, men kostnaden att jämföra längden är jämförbar med att jämföra två tecken med varann, så det enda scenariot där det egentligen påverkar prestandan negativt är när man jämför väldigt korta strängar som oftast är lika långa. När strängarna blir lite längre är den relativa kostnaden för längdjämförelsen så liten att den knappt spelar någon roll.

Ja det är ju helt sant. I mitt fall så jämförde jag bara ord som är längre än 3 bokstäver, och orden som skulle jämföras var ofta 6-10 bokstäver. Så det var nog en bra idé att jämföra längden innan. Snabbt gick det iallafall. :)

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)