Last active
January 9, 2017 12:18
-
-
Save cevek/bfb8deb2cbb11ccf0191e3682d63a92b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var hash100 = {"x0":true,"x1":true,"x2":true,"x3":true,"x4":true,"x5":true,"x6":true,"x7":true,"x8":true,"x9":true,"x10":true,"x11":true,"x12":true,"x13":true,"x14":true,"x15":true,"x16":true,"x17":true,"x18":true,"x19":true,"x20":true,"x21":true,"x22":true,"x23":true,"x24":true,"x25":true,"x26":true,"x27":true,"x28":true,"x29":true,"x30":true,"x31":true,"x32":true,"x33":true,"x34":true,"x35":true,"x36":true,"x37":true,"x38":true,"x39":true,"x40":true,"x41":true,"x42":true,"x43":true,"x44":true,"x45":true,"x46":true,"x47":true,"x48":true,"x49":true,"x50":true,"x51":true,"x52":true,"x53":true,"x54":true,"x55":true,"x56":true,"x57":true,"x58":true,"x59":true,"x60":true,"x61":true,"x62":true,"x63":true,"x64":true,"x65":true,"x66":true,"x67":true,"x68":true,"x69":true,"x70":true,"x71":true,"x72":true,"x73":true,"x74":true,"x75":true,"x76":true,"x77":true,"x78":true,"x79":true,"x80":true,"x81":true,"x82":true,"x83":true,"x84":true,"x85":true,"x86":true,"x87":true,"x88":true,"x89":true,"x90":true,"x91":true,"x92":true,"x93":true,"x94":true,"x95":true,"x96":true,"x97":true,"x98":true,"x99":true} | |
var hash50 = {"x0":true,"x1":true,"x2":true,"x3":true,"x4":true,"x5":true,"x6":true,"x7":true,"x8":true,"x9":true,"x10":true,"x11":true,"x12":true,"x13":true,"x14":true,"x15":true,"x16":true,"x17":true,"x18":true,"x19":true,"x20":true,"x21":true,"x22":true,"x23":true,"x24":true,"x25":true,"x26":true,"x27":true,"x28":true,"x29":true,"x30":true,"x31":true,"x32":true,"x33":true,"x34":true,"x35":true,"x36":true,"x37":true,"x38":true,"x39":true,"x40":true,"x41":true,"x42":true,"x43":true,"x44":true,"x45":true,"x46":true,"x47":true,"x48":true,"x49":true} | |
function sw100(attr, a) { | |
switch(attr) { | |
case'x0':case'x1':case'x2':case'x3':case'x4':case'x5':case'x6':case'x7':case'x8':case'x9':case'x10':case'x11':case'x12':case'x13':case'x14':case'x15':case'x16':case'x17':case'x18':case'x19':case'x20':case'x21':case'x22':case'x23':case'x24':case'x25':case'x26':case'x27':case'x28':case'x29':case'x30':case'x31':case'x32':case'x33':case'x34':case'x35':case'x36':case'x37':case'x38':case'x39':case'x40':case'x41':case'x42':case'x43':case'x44':case'x45':case'x46':case'x47':case'x48':case'x49':case'x50':case'x51':case'x52':case'x53':case'x54':case'x55':case'x56':case'x57':case'x58':case'x59':case'x60':case'x61':case'x62':case'x63':case'x64':case'x65':case'x66':case'x67':case'x68':case'x69':case'x70':case'x71':case'x72':case'x73':case'x74':case'x75':case'x76':case'x77':case'x78':case'x79':case'x80':case'x81':case'x82':case'x83':case'x84':case'x85':case'x86':case'x87':case'x88':case'x89':case'x90':case'x91':case'x92':case'x93':case'x94':case'x95':case'x96':case'x97':case'x98':case'x99': | |
return true; | |
return false; | |
} | |
} | |
function swA100(attr, a) { | |
switch(attr) { | |
case a[0]:case a[1]:case a[2]:case a[3]:case a[4]:case a[5]:case a[6]:case a[7]:case a[8]:case a[9]:case a[10]:case a[11]:case a[12]:case a[13]:case a[14]:case a[15]:case a[16]:case a[17]:case a[18]:case a[19]:case a[20]:case a[21]:case a[22]:case a[23]:case a[24]:case a[25]:case a[26]:case a[27]:case a[28]:case a[29]:case a[30]:case a[31]:case a[32]:case a[33]:case a[34]:case a[35]:case a[36]:case a[37]:case a[38]:case a[39]:case a[40]:case a[41]:case a[42]:case a[43]:case a[44]:case a[45]:case a[46]:case a[47]:case a[48]:case a[49]:case a[50]:case a[51]:case a[52]:case a[53]:case a[54]:case a[55]:case a[56]:case a[57]:case a[58]:case a[59]:case a[60]:case a[61]:case a[62]:case a[63]:case a[64]:case a[65]:case a[66]:case a[67]:case a[68]:case a[69]:case a[70]:case a[71]:case a[72]:case a[73]:case a[74]:case a[75]:case a[76]:case a[77]:case a[78]:case a[79]:case a[80]:case a[81]:case a[82]:case a[83]:case a[84]:case a[85]:case a[86]:case a[87]:case a[88]:case a[89]:case a[90]:case a[91]:case a[92]:case a[93]:case a[94]:case a[95]:case a[96]:case a[97]:case a[98]:case a[99]: | |
return true; | |
return false; | |
} | |
} | |
function if100(a) { | |
return a==='x0'?1:a==='x1'?1:a==='x2'?1:a==='x3'?1:a==='x4'?1:a==='x5'?1:a==='x6'?1:a==='x7'?1:a==='x8'?1:a==='x9'?1:a==='x10'?1:a==='x11'?1:a==='x12'?1:a==='x13'?1:a==='x14'?1:a==='x15'?1:a==='x16'?1:a==='x17'?1:a==='x18'?1:a==='x19'?1:a==='x20'?1:a==='x21'?1:a==='x22'?1:a==='x23'?1:a==='x24'?1:a==='x25'?1:a==='x26'?1:a==='x27'?1:a==='x28'?1:a==='x29'?1:a==='x30'?1:a==='x31'?1:a==='x32'?1:a==='x33'?1:a==='x34'?1:a==='x35'?1:a==='x36'?1:a==='x37'?1:a==='x38'?1:a==='x39'?1:a==='x40'?1:a==='x41'?1:a==='x42'?1:a==='x43'?1:a==='x44'?1:a==='x45'?1:a==='x46'?1:a==='x47'?1:a==='x48'?1:a==='x49'?1:a==='x50'?1:a==='x51'?1:a==='x52'?1:a==='x53'?1:a==='x54'?1:a==='x55'?1:a==='x56'?1:a==='x57'?1:a==='x58'?1:a==='x59'?1:a==='x60'?1:a==='x61'?1:a==='x62'?1:a==='x63'?1:a==='x64'?1:a==='x65'?1:a==='x66'?1:a==='x67'?1:a==='x68'?1:a==='x69'?1:a==='x70'?1:a==='x71'?1:a==='x72'?1:a==='x73'?1:a==='x74'?1:a==='x75'?1:a==='x76'?1:a==='x77'?1:a==='x78'?1:a==='x79'?1:a==='x80'?1:a==='x81'?1:a==='x82'?1:a==='x83'?1:a==='x84'?1:a==='x85'?1:a==='x86'?1:a==='x87'?1:a==='x88'?1:a==='x89'?1:a==='x90'?1:a==='x91'?1:a==='x92'?1:a==='x93'?1:a==='x94'?1:a==='x95'?1:a==='x96'?1:a==='x97'?1:a==='x98'?1:a==='x99'?1:0; | |
} | |
function ifOr100(a) { | |
return a==='x0'||a==='x1'||a==='x2'||a==='x3'||a==='x4'||a==='x5'||a==='x6'||a==='x7'||a==='x8'||a==='x9'||a==='x10'||a==='x11'||a==='x12'||a==='x13'||a==='x14'||a==='x15'||a==='x16'||a==='x17'||a==='x18'||a==='x19'||a==='x20'||a==='x21'||a==='x22'||a==='x23'||a==='x24'||a==='x25'||a==='x26'||a==='x27'||a==='x28'||a==='x29'||a==='x30'||a==='x31'||a==='x32'||a==='x33'||a==='x34'||a==='x35'||a==='x36'||a==='x37'||a==='x38'||a==='x39'||a==='x40'||a==='x41'||a==='x42'||a==='x43'||a==='x44'||a==='x45'||a==='x46'||a==='x47'||a==='x48'||a==='x49'||a==='x50'||a==='x51'||a==='x52'||a==='x53'||a==='x54'||a==='x55'||a==='x56'||a==='x57'||a==='x58'||a==='x59'||a==='x60'||a==='x61'||a==='x62'||a==='x63'||a==='x64'||a==='x65'||a==='x66'||a==='x67'||a==='x68'||a==='x69'||a==='x70'||a==='x71'||a==='x72'||a==='x73'||a==='x74'||a==='x75'||a==='x76'||a==='x77'||a==='x78'||a==='x79'||a==='x80'||a==='x81'||a==='x82'||a==='x83'||a==='x84'||a==='x85'||a==='x86'||a==='x87'||a==='x88'||a==='x89'||a==='x90'||a==='x91'||a==='x92'||a==='x93'||a==='x94'||a==='x95'||a==='x96'||a==='x97'||a==='x98'||a==='x99'; | |
} | |
function sw50(attr) { | |
switch(attr) { | |
case'x0':case'x1':case'x2':case'x3':case'x4':case'x5':case'x6':case'x7':case'x8':case'x9':case'x10':case'x11':case'x12':case'x13':case'x14':case'x15':case'x16':case'x17':case'x18':case'x19':case'x20':case'x21':case'x22':case'x23':case'x24':case'x25':case'x26':case'x27':case'x28':case'x29':case'x30':case'x31':case'x32':case'x33':case'x34':case'x35':case'x36':case'x37':case'x38':case'x39':case'x40':case'x41':case'x42':case'x43':case'x44':case'x45':case'x46':case'x47':case'x48':case'x49': | |
return true; | |
return false; | |
} | |
} | |
function sw40(attr) { | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
switch(attr) { | |
case'x0':case'x1':case'x2':case'x3':case'x4':case'x5':case'x6':case'x7':case'x8':case'x9':case'x10':case'x11':case'x12':case'x13':case'x14':case'x15':case'x16':case'x17':case'x18':case'x19':case'x20':case'x21':case'x22':case'x23':case'x24':case'x25':case'x26':case'x27':case'x28':case'x29':case'x30':case'x31':case'x32':case'x33':case'x34':case'x35':case'x36':case'x37':case'x38':case'x39':case'x40':case'x41':case'x42':case'x43':case'x44':case'x45':case'x46': | |
return true; | |
return false; | |
} | |
} | |
function sw25(attr) { | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
switch(attr) { | |
case'x0':case'x1':case'x2':case'x3':case'x4':case'x5':case'x6':case'x7':case'x8':case'x9':case'x10':case'x11':case'x12':case'x13':case'x14':case'x15':case'x16':case'x17':case'x18':case'x19':case'x20':case'x21':case'x22':case'x23':case'x24': | |
return true; | |
return false; | |
} | |
} | |
function sw12(attr) { | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
switch(attr) { | |
case'x0':case'x1':case'x2':case'x3':case'x4':case'x5':case'x6':case'x7':case'x8':case'x9':case'x10':case'x11': | |
return true; | |
return false; | |
} | |
} | |
function hashEx100(attr) { | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
return hash100[attr] || false; | |
} | |
function hashEx50(attr) { | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
// do not inline | |
return hash50[attr] || false; | |
} | |
hashEx100('x0'); | |
hashEx100('x1'); | |
hashEx100('x50'); | |
hashEx100('x98'); | |
hashEx100('rgr'); | |
hashEx50('x0'); | |
hashEx50('x1'); | |
hashEx50('x49'); | |
hashEx50('rgr'); | |
sw12('x0'); | |
sw12('x11'); | |
sw12('x49999'); | |
sw25('x0'); | |
sw25('x24'); | |
sw25('x49999'); | |
sw50('x0'); | |
sw50('x49'); | |
sw50('x49999'); | |
sw100('x0'); | |
sw100('x99'); | |
sw100('x49999'); | |
if100('x0'); | |
if100('x11'); | |
if100('x49999'); | |
ifOr100('x0'); | |
ifOr100('x11'); | |
ifOr100('x49999'); | |
// var prop = 'x500'; | |
//100elements | |
// hash - 100ms, not found 700ms | |
// switch - 50-370ms | |
//50elements | |
// hash - 110ms, not found 700ms | |
// switch - 50-210ms | |
//25elements | |
// hash - 110ms, not found 700ms | |
// switch - 50-90ms | |
//12elements | |
// hash - 110ms, not found 700ms | |
// switch - 50-45ms | |
// switch(both) 3.2ms on every case item in 10m checks | |
// with new Array 6ms | |
var arr = new Uint8Array(100); | |
for (let i = 0; i < arr.length; i++) { | |
arr[i] = i; | |
} | |
swA100(1, arr); | |
swA100(50, arr); | |
swA100(99, arr); | |
swA100(100, arr); | |
if100('x0'); | |
if100('x99'); | |
if100('xsdaf'); | |
var prop = 'x99'; | |
function abc() { | |
console.time('perf'); | |
for (var i = 0; i < 1e7; i++) { | |
// hashEx100(prop); | |
sw100(prop); | |
// swA100(99, arr); | |
// ifOr100(prop); | |
// if100(prop); | |
} | |
console.timeEnd('perf'); | |
} | |
abc(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment