Ajax 板


LINE

note:已经有更快的方法 请看344 --- 不晓得这边可不可以贴这种javascript的心得@@a 以前写16进位转换的时候 写出一个虽然很笨但是很直觉好用的方法 用字串索引数字外加用charAt暴力分割字串 最近又拿出来用 突然在想有没有更快的处理方法 於是做以下测试 测试时使用ie6, opera 8, mozilla firefox 1.0.2 结论:用字串+charAt暴力搜寻最好 方法1,2基本上时间相差没有很多,ie1跑的比2快 mozilla反之,可是都是0.05秒以内的差距 再说1的程式码比较短... --- 编号 时间 测试项目 1 1953 用字串+charAt暴力切割 2 1969 改用字串表 3 2453 用fromCharCode加上小判断 4 2360 用暴力字码表+fromCharCode 5 2016 把1的位元运算改用mod 结论是速度下降 6 2594 把2的字串表改用charAt转字元表 还是速度下降 7 2469 把3改写用if else 有比3快可是还是不够 8 3844 把4的fromCharCode改在建立阵列做 9 4500 把6的charAt(0)改在建立阵列时候做 10 2000 把1的charAt改由subString做 发现会稍慢 --- <script> function dec2hex(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16.charAt(tmpNum); num >>= 4; } return str.reverse().join(""); } function dec2hex2(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.join(""); } function dec2hex3(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = String.fromCharCode((tmpNum>9)?(tmpNum+0x30):(tmpNum+0x37)); num >>= 4; } return str.reverse().join(""); } function dec2hex4(num){ var str16 = new Array(0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = String.fromCharCode(str16[tmpNum]); num >>= 4; } return str.reverse().join(""); } function dec2hex5(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num % 16; str[i] = str16.charAt(tmpNum); num >>= 4; } return str.reverse().join(""); } function dec2hex6(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum].charAt(0); num >>= 4; } return str.reverse().join(""); } function dec2hex7(num){ var str16 = new Array("0","1","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; if(tmpNum > 9){ str[i] = String.fromCharCode(tmpNum + 0x30); }else{ str[i] = String.fromCharCode(tmpNum + 0x37); } num >>= 4; } return str.reverse().join(""); } function dec2hex8(num){ var str16 = new Array( String.fromCharCode(0x30), String.fromCharCode(0x31), String.fromCharCode(0x32), String.fromCharCode(0x33), String.fromCharCode(0x34), String.fromCharCode(0x35), String.fromCharCode(0x36), String.fromCharCode(0x37), String.fromCharCode(0x38), String.fromCharCode(0x39), String.fromCharCode(0x41), String.fromCharCode(0x42), String.fromCharCode(0x43), String.fromCharCode(0x44), String.fromCharCode(0x45), String.fromCharCode(0x46)); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.reverse().join(""); } function dec2hex9(num){ var str16 = new Array( "0".charAt(0), "1".charAt(0), "1".charAt(0), "2".charAt(0), "3".charAt(0), "4".charAt(0), "5".charAt(0), "6".charAt(0), "7".charAt(0), "8".charAt(0), "9".charAt(0), "A".charAt(0), "B".charAt(0), "C".charAt(0), "D".charAt(0), "E".charAt(0), "F".charAt(0)); var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16[tmpNum]; num >>= 4; } return str.reverse().join(""); } function dec2hex10(num){ var str16 = "0123456789ABCDEF"; var str = new Array; for(var i = 0; num > 0; i++){ var tmpNum = num & 0x0F; str[i] = str16.substring(tmpNum,tmpNum + 1); num >>= 4; } return str.reverse().join(""); } function $(str){ return document.getElementById(str); } var dateTmp; function t1(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex(i); } $("d_t1").innerHTML = (((new Date().getTime()) - dateTmp)); } function t2(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex2(i); } $("d_t2").innerHTML = (((new Date().getTime()) - dateTmp)); } function t3(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex3(i); } $("d_t3").innerHTML = (((new Date().getTime()) - dateTmp)); } function t4(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex4(i); } $("d_t4").innerHTML = (((new Date().getTime()) - dateTmp)); } function t5(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex5(i); } $("d_t5").innerHTML = (((new Date().getTime()) - dateTmp)); } function t6(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex6(i); } $("d_t6").innerHTML = (((new Date().getTime()) - dateTmp)); } function t7(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex7(i); } $("d_t7").innerHTML = (((new Date().getTime()) - dateTmp)); } function t8(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex8(i); } $("d_t8").innerHTML = (((new Date().getTime()) - dateTmp)); } function t9(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex9(i); } $("d_t9").innerHTML = (((new Date().getTime()) - dateTmp)); } function t10(){ dateTmp = new Date().getTime(); for(var i = 0; i < 65536; i++){ dec2hex10(i); } $("d_t10").innerHTML = (((new Date().getTime()) - dateTmp)); } </script> <input type=button onclick="t1();"/><span id="d_t1"></span><br/> <input type=button onclick="t2();"/><span id="d_t2"></span><br/> <input type=button onclick="t3();"/><span id="d_t3"></span><br/> <input type=button onclick="t4();"/><span id="d_t4"></span><br/> <input type=button onclick="t5();"/><span id="d_t5"></span><br/> <input type=button onclick="t6();"/><span id="d_t6"></span><br/> <input type=button onclick="t7();"/><span id="d_t7"></span><br/> <input type=button onclick="t8();"/><span id="d_t8"></span><br/> <input type=button onclick="t9();"/><span id="d_t9"></span><br/> <input type=button onclick="t10();"/><span id="d_t10"></span><br/> -- ▂▃◣ telnet://whshs.twbbs.org P_mingray ▂▃◣ telnet://bbs.kkcity.com.tw KKCity mingray ▃▊▌▆ telnet://wretch.twbbs.org P_mingray ▄▋▋▅ 个人网站 http://pyms.fly.to/ MingRay随意闲聊 填色工具1.1.7感谢大家的支持与爱用 1.1.8版目前测试中 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.131.243 ※ 编辑: nosql 来自: 59.115.131.243 (08/09 20:26) ※ 编辑: nosql 来自: 59.115.131.243 (08/10 00:05) ※ 编辑: nosql 来自: 59.115.131.243 (08/10 00:05)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP