JavaScript 数组、Object对象for循环效率对比

原来小航子(山山)跟我说过,多用object对象少用数组对象,因为object的效率要高一些,今天刚好在写一个JS的遇到了一个用数组还是用对象的问题,所以就简单写了测试页面。

详见:http://ghsky.com/lab/090521/test_js_for.html

实验内容:测试内容主要是for循环,因为一般数组都是用for循环来遍历数组元素,而object对象则应该用for..in循环来遍历对象元素,所以主要测试思路就是给object和数组填充大量元素,然后分别测试他们遍历、输出的消耗时间。

实验方法:简单说一下实施方法,首先通过一个随机生成字符串的函数(每次生成字符串长度在0-200个字符间),然后分别将生成字符串存到object对象和数组对象中(通常要生成1000个上述字符串),然后用innerHTML方法在页面中输出,计算遍历、输出时间。

说明:考虑用innerHTML方法输出是因为效率比DOM方法高很多,而且这种效率提高有助于高效检测,其次迭代输出的时候用了 innerHTML += 的方法,虽然这样效率很低,应该考虑用存到一个数组然后在.join('')生成字符串输出,但是考虑到将object转存数组也有大量时间消耗,所以索性就选择 innerHTML += 的方法输出。

警告:由于此测试页面计算量很大,容易造成浏览器占用较高CPU,同时浏览器假死现象也可能出现,因此在进行测试的时候请确保浏览器没有打开未保存页面或没有进行其他有可能造成损失的操作!

结论:1.经过几次简单的测试,发现通常情况下数组for循环效率要高于object for-in循环,且有时效率甚至高于50%以上,但是测试也发现,相反的结果页可能出现几次,但总体来看数组循环的效率是要高于object对象的for-in循环;
2.同时经过不同浏览器的测试,发现对于各浏览器的JavaScript引擎来说,Chrome 2的V8引擎最优秀,平均耗时很低,且假死现象轻微;其次是Opera,9.6它的速度和Chrome相对,稍慢一些,不过稳定性不如Chrome,过程中会出现“未响应”情况;第三应该是Safari 4 Beta,运算速度稍慢于Opera,但是较为稳定;第四应该归属IE8,运算速度慢于以上各浏览器,不过没有假死现象;最后是Firefox 3.0.10,速度最慢,通常比IE8还慢很多,有时比IE8慢达200%!!看来Firefox 3.0的JavaScript引擎仍需提高啊~

最后此种测试方法可能存在缺陷,欢迎各位DX拍砖,同时也欢迎各位博友在留言中回复两项测试的时间,谢谢~

利用 JSONP 进行 JavaScript 的跨域数据访问

原文来自:http://hpyer.cn/visit-remote-data-with-jsonp-in-javascript.html

一、基础知识

  1、什么是 JSON:JavaScript Object Notation (JSON) 是一种轻量级、基于文本、语言无关的数据交换格式。它是从 ECMAScript 语言标准衍生而来的。JSON为轻便的表示结构化数据,定义了一小套格式化规则。以下是一个 JSON 对象的例子:

{
    "Image": {
        "Width": 450,
        "Height": 561,
        "Title": "Intel Core 2 Duo",
        "Thumbnail": {
            "Url": "http://www.example.com/image/...",
            "Height": 125,
            "Width": "100"
        },
        "IDs": [116, 943, 234, 38793]
    }
}

  2、什么是 JSONP:JSONP(JSON with Padding)是一个非官方的协议,它允许在服务器端集成 Script tags 返回至客户端,通过 Javascript callback 的形式实现跨域访问(这仅仅是 JSONP 简单的实现形式)。
阅读全文…

开启VAIO SZ系的VT和AHCI

昨天上Mobile01,看TW达人的VAIO Z系开箱,那个羡慕啊~~ :cry: 因为现在在HK,以我这本同样的价格就能买到Z37,牛机啊~~而且是花纹盖的~~太YY了~~~~ :eek: 可是哦~~~~一切尽在不言中(-_-|||貌似很扯淡,回归主题~)

话说看到那达人的Z36一个WIN7 XPM的检测软件(SecurAble),即检测CPU是否支持64Bit&DEP&VT的~截图上居然显示VAIO的U支持了VT,我那个惊诧啊~ :exclaim: 不会是VAIO从Z开始对自己的本放行CPU的VT兼容了吧??赶快在Mobile01上继续逛了一下,发现原来Z SR之类的新机已经用的不是phonix的BIOS,开启VT的方式也简单,重新刷个破解的BIOS就搞定(唉,SONY果真还是够狠的~怕麻烦,故意锁死了CPU VT),继续找啊找,发现原来SZ也可以破解开启VT了,同时连AHCI也可以开启了,那个激动啊~~~哇哈哈~ :biggrin:

P.S.顺便来抱怨一下SONY吧,VAIO的本本做工那是毋庸置疑的,磨具十分帅气,SZ Z这些商务系也十分轻便,当初我正是看重了VAIO SZ的轻便和比较优秀的屏(现在相对Z的屏来说真是够烂的~),所以放弃了TP转而买了VAIO,不过话说VAIO的性价比真是很烂,而且对于机都是统一定价,在任何时候都不降价(包括快下架的时候),不知道这到底是不是好处,所以我还是一冲动在SZ即将下架之际买了这个即将淘汰的机型~但是用到至今,还是发现VAIO的本的确值那个价,做工很好,散热没问题,噪音也挺不错的,就是那个驱动安装真的十分受罪啊~~没有一个集中的安装软件,也没有自动驱动升级之类的自动地、集中地驱动安装,所以驱动不得不自己一个一个慢慢来搞,所以每次重装系统都是一次煎熬,只是到了Windows 7驱动大部分都能自动安上,需要手动装的也不多了,加之现在改用US版的驱动,好装一些了~不过还是希望VAIO能改进改进~~~还有就是VAIO那个限制啊~可怕,打开BIOS,里面基本就没啥可以改的,甚至就没啥可以看到的信息~~~~

言归正传,继续说如何开启VT和AHCI~
具体方法可以看论坛上这篇文章How to Enable Intel VT and AHCI on a Napa/Santa Rosa platform Phoenix BIOS Vaio laptop
我这里只简述一下主要步骤和注意事项:
对于SZ的本,U主要有两个平台Napa和Santa Rosa,对于这两个不同平台的SZ系,对应的最新BIOS版本也是不同的,R0112N0 for Napa SZs or R0122S5 for Santa Rosa SZs,可以通过CPU-Z查看,如下图,圈出部分即是当前BIOS的版本:

BIOS Version
切记:如果BIOS版本不是上述两个最新版(R0112N0 for Napa SZs or R0122S5 for Santa Rosa SZs)的话就请到VAIO官网下载最新的BIOS升级进行升级后再进行其他步骤!

再说一下需要准备的工具,如果你硬盘分区还有FAT32的话那最好不过了,你现在只需一个可引导启动到DOS的光盘即可。如果你已将像我一样把所有硬盘分区都升级到NTFS的话,可能就比较困难了~因为现在需要准备一个可在DOS下读写的地方,目前最合适的好像只有U盘了,但是估计我RP比较烂,始终做不出一个可引导启动U盘(用过UBOOT和FLASHBOOT,没有一个做出来的可以引导启动,也上Google搜了不少文章,还是搞不定,希望有哪位DX可以指点指点),最后自己是迫不得已,在最后一个分区用PM分了100MB的空间做了个FAT32来放工具才搞定的,郁闷啊,这问题最少折腾了一下午~~ :mrgreen: 把空间准备好后你需要载一个小工具symcmos,用于读写BIOS信息的,如果你想直接在DOS下编辑TXT的话,还需要准备一个DOS下的文本编辑软件(后面会说为什么需要这个东东),当然你不想在DOS下折腾的话,也可以回WINDOWS编辑~~
阅读全文…

终于回来了~

最终还是回归了,把BLOG搞定了,已经停止更新至少8个月了~主要原因一是在学校,宿舍还没有网络,不能方便的上网,更新BLOG自然也是不可能的,其二呢是我和XX的VPS最终在他的财政扛不住下而停止了,不得不说比较遗憾,因为那个VPS的确不错,XX把服务器优化得挺好,而且那个在国外的VPS速度也不错,同时也是很好的翻墙利器 :biggrin: ~~~~

话说现在这个BLOG所在的服务器还是工作室做项目搞的,放在四川本地,我这边访问自然速度还行,但是不知道其他地方的如何~

话说前短时间也有把BLOG暂时地恢复,可是不幸接踵而来,一是放BLOG的那服务器木马不断,导致访问我BLOG都会遭到服务器木马的而已攻击,最终在GOOGLE和合作伙伴的恶意网站检测下,域名被屏蔽了~~~郁闷~~二是由一导致的,Twitter上包括我BLOG地址,所以Twitter就因为我的域名被屏蔽所以将我的账号视为了恶意账号而被关禁闭了~~~~更加郁闷~不过知道原因了,及时将BLOG重新解析到安全服务器上,并且向GOOGLE申请重新审核域名,最终取消了我域名的恶意屏蔽,Twitter账号也在主动联系客服后说明原因,而得到了解禁~

由于长时间的停滞更新,以及网站下线,以及被错误地屏蔽等等~~~最终以为现在回来后域名的PR一定会降不少,可是不知道是不是RP原因,发现好像至今BLOG PR还是维持在4,到底有没有搞错?!

总结了以上有关BLOG的事情,也来说现在的自己吧,在UESTC混得一般般吧~上学期期末没挂~~哇哈哈 :smile: RP还是起了至关重要的作用,这学期貌似还在延续,保持保持~~~唉,就像XX说得,对大学保持新鲜感至少也要持续一个学期嘛,其实我还是做到了吧,不过现在是越来越颓咯~~~翘课真是贼多贼多的~话说期中刚过不久,貌似马上就期末了,看来又要开始期末的努力“补习”了,不然肯定会挂得贼难看的哦~~话说大学这快一年的时间也是不少收获的,比如收获不少好兄弟,同时技术方面也有很大的提高~得益于曾经的基础,现在系统学习起相关知识也不算太难,而且自我感觉进步也挺快的~主要是前端方面吧,(X)HMTL,CSS,JavaScript都学习了不少时间,也能做出一些东西了,现在还是在努力得精通JS~

BLOG的相关东东有时间再折腾吧,好不容易把BLOG升级到了WP2.7.1,N多插件也算是升级得差不多,最终发现原来搞得模版还有各种插件的使用还是挺正常的,没啥问题,庆幸哦~~ :eek:

既然学了不少前端知识,BLOG的页面也该开始有自己的风格在里面了吧,可还是木有时间去折腾,而且想找个设计来做个设计,然后我来搞前端,唉,不过不急,慢慢来吧,大二才能正式进入状态,毕竟那时宿舍才会开网嘛~~~

就暂时这样吧,欢迎各位回归我的BLOG,欢迎各位继续和我保持联系~~

-EOF-