optimization - Table access vs function call + conditional determination: which is faster? -


i need check if particular string 1 of set of predetermined strings.

two methods came mind: setting table return true on particular value

local isparticular = {     [string1] = true,     [string2] = true }  print(isparticular[string1]) -- true print(isparticular[randomstring]) -- nil -> false 

or setting function check conditional determination

function isparticular(s)     return s == string1 or s == string2 end  print(isparticular(string1)) -- true print(isparticular(randomstring)) -- false 

from understand table method take same time both of particular strings , different strings, while function call because of short-circuit evaluation take less time string1 , more time string2 , randomstring.

also, both function call , table access known causing little overhead, maybe short-circuit evaluation can make difference (in being slower think, considered have more 2 particular strings , of times string won't match of them).

so method should use?

a hash-table lookup outperform functional lookup large dataset. so, go first method:

local isparticular = {     string1 = true,     string2 = true }  print(isparticular[string1]) -- true print(isparticular[randomstring]) -- nil -> false 

Comments

Popular posts from this blog

matlab - error with cyclic autocorrelation function -

django - (fields.E300) Field defines a relation with model 'AbstractEmailUser' which is either not installed, or is abstract -

c# - What is a good .Net RefEdit control to use with ExcelDna? -