Skip to content

Instantly share code, notes, and snippets.

@cevek
Last active January 9, 2017 12:18
Show Gist options
  • Save cevek/bfb8deb2cbb11ccf0191e3682d63a92b to your computer and use it in GitHub Desktop.
Save cevek/bfb8deb2cbb11ccf0191e3682d63a92b to your computer and use it in GitHub Desktop.
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