Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mid() vs Mid$()

Tags:

vb6

According to the documentation in VB6 the Mid() function returns a variant, but Mid$() returns a string and apparently this is more efficient.

My questions are :

  1. What simple test can I use to discern the difference in performance ? I tried monitoring a simple app performing a few string operations with Perfmon, but there was no discernible difference.

  2. Is it worth worrying about? I've gotten into the habit of using the $-ized functions, but should I recommend everybody on my team to use it as well?

like image 618
jakdep Avatar asked Feb 06 '09 08:02

jakdep


Video Answer


2 Answers

Isn't worth worrying about. It's a remnant from Microsoft Basic of 15-20 years ago when a fast processor was orders of magnitude slower than anything today.

It has a certain esthetic appeal to use Mid$ rather than let VB determine what your datatypes are, though. And if you have any loops that are executing it, say, thousands of tiems a second, then your curiosity factor might increase. Otherwise, neh.

Here's a link to someone who measured the difference. Mid$ was about 2.5 times as fast as Mid. Including tests going back to VB4.

like image 200
dkretz Avatar answered Sep 20 '22 13:09

dkretz


Whilst performance between them is negligible its not really a differentiator as to which to use anyway.

There can be some nuances when using a variant when a strong type is required. For example what happens when you pass a variant to a parameter expecting a ByRef string? Nothing bad but something a little more than passing an address happens.

Hence if you know that you want to work with strings then go ahead and use the $ versions of these functions the behaviour of them and their use in other expressions is simpler and better understood. If you know you need a variant and your inputs are variants then sure use the non $ versions.

like image 23
AnthonyWJones Avatar answered Sep 20 '22 13:09

AnthonyWJones