[AccessD] Swap two elements in an array

Stuart McLachlan stuart at lexacorp.com.pg
Fri Aug 26 16:11:16 CDT 2022


It would be better  if speed were critical and there was a major actual (as opposed to 
relative) time difference but like I said, after  testing, it's not worth the effort :)

On 26 Aug 2022 at 7:58, Arthur Fuller wrote:

> Stuart,
> 
> Please explain why it's better to have separate functions for each
> data type rather than using Variants. How much faster is it using
> separate functions as opposed to a single function that works with
> variants? Is it worth the trouble? From your own benchmarks, I don't
> see the advantage; if performance were that critical, I'd guess that
> VBA is the wrong language in the first place.
> 
> On Fri, Aug 26, 2022 at 1:17 AM Stuart McLachlan
> <stuart at lexacorp.com.pg> wrote:
> 
> > It's really not worth the extra effort.
> >
> > The variant swap takes twice as long as the integer swap, but the
> > difference  is only about 0.156 seconds versus 0.0781 seconds per
> > million iterations on my old laptop. That's 0.078 milliseconds
> > faster per thousand calls to the function.
> >
> >
> > On 26 Aug 2022 at 14:37, Stuart McLachlan wrote:
> >
> > > Oops!  Too quick!
> > > I messed those last two functions up badly :(
> > >
> > > Actually, the return value assignment is hardly necessary and you
> > > could make the functions marginally faster again by not setting a
> > > return value.
> > >
> > > Function iSwap(x As Long y As Long) As Boolean
> > >     'swap integral variables
> > >     Dim t As Long
> > >     t = x
> > >     x = y
> > >     y = t
> > > End Function
> > > Function fSwap(x As Double, y As Double) As Boolean
> > >     'Swap float  variables
> > >     Dim t As Double
> > >     t = x
> > >     x = y
> > >     y = t
> > > End Function
> > > Function sSwap(x As String, y As String) As Boolean
> > >    'swap string variables
> > >     Dim t As String
> > >     t = x
> > >     x = y
> > >     y = t
> > > End Function
> > >
> > >
> > >
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com
> > > https://databaseadvisors.com/mailman/listinfo/accessd
> > > Website: http://www.databaseadvisors.com
> > >
> >
> >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> 
> 
> -- 
> Arthur
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list