bbs无线话筒筒230.7-254.6和230.2-254.2这两套会串频干扰吗

 上传我的文档
 下载
 收藏
粉丝量:35
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
下载积分:300
内容提示:MCP601-R
文档格式:PDF|
浏览次数:112|
上传日期: 15:35:21|
文档星级:
全文阅读已结束,如果下载本文需要使用
 300 积分
下载此文档
该用户还上传了这些文档
关注微信公众号2016年中国CT设备和PET-CT设备市场规模统计(图)_中国产业信息网
欢迎来到中国产业信息网||||
2016年中国CT设备和PET-CT设备市场规模统计(图)
年我国CT设备行业销量 资料来源:公开资料整理& & 智研咨询发布的《》显示,2014年我国PET-CT设备市场需求约46台,同比2013年的41台增长了10.9%,近几年我国PET-CT设备行业需求情况如下图所示:年我国PET-CT设备市场需求情况资料来源:公开资料整理& &&2014年我国PET-CT设备行业销售市场规模约10.21亿元,2015年预计9.68亿元,近几年我国PET-CT设备行业销售市场规模情况如下图所示:年我国PET-CT设备行业市场规模情况资料来源:公开资料整理& &&2014年我国PET/CT主要分布在北京、广东、上海、山东、浙江和福建等经济发达或人口较多的省份。2014年中国PET/CT地域分布情况资料来源:公开资料整理& &&随着放射学的不断发展,传统的X线摄片已发展为数字放射摄影,而CT和MR取得了更大发展,在临床医疗中发挥重要作用。核医学是影像医学的重要组成部分,在我国有50年的历程,经历扫描、Y照相、SPECT和PET显像4个阶段,现已进入PET/CT'决速发展的时代。PET的全称为正电子发射型计算机断层显像仪,是采用符合测量记录正电子药物进入人体内分布的装置,而PET/CT为两者图像的融合技术。早在20世纪70年代中期,PET局部显像已用于脑和心脏代谢的研究;1990年全身PET问世后,其被广泛应用于诊断肿瘤,并进一步发展用于心脏乃至神经、精神等疾病的诊断。& &&目前,在我国,以PET/CT为代表的高端医疗影像设备完全依赖进口,多年来一直被GE、飞利浦、和西门子 (简称GPS)三大跨国公司的产品所垄断。进口设备价格昂贵,维修保养费用高,造成临床诊断费用居高不下,加重了患者的医疗负担,对我国降低医疗开支、节约医疗资源产生了不利影响。& &&2002年我国PET/CT行业保有量3台,到2014年我国PET/CT行业保有量近300台,近几年我国PET/CT行业保有量情况如下图所示: 年我国PET/CT行业保有量情况资料来源:公开资料整理& &&CT机的全称为X线电子计算机断层扫描仪,它拥有高分辨率、高灵敏度以及多层次等众多优越性,是我国装机量最大的医疗影像采集设备之一,并被广泛地应用于各个医疗临床检查领域,它的这些优点使其拥有极其广阔的市场。& &&中国也在上世纪70年代末引进了这一新技术;上世纪80年代初,我国京、沪、津、穗等大城市的医院开始从国外引进CT机,当时每台进口CT机的价格高达数百万甚至上千万元人民币;到了90年代,CT机在全国范围内获得一定推广,同时国产CT机问世;近年来,经过我国科技人员和企业的不懈努力,国产CT机产业迅速发展壮大,在短短的30年里,全国各地乃至县镇级医院共安装了各种型号的CT机数千台,CT检查在全国范围内迅速地层开,成为医学诊断中不可缺少的设备。& &&年,我国CT机总装机量从9968台增加到18224台;市场销售收入从42亿元增加到119亿元,5年增长了2.83倍。随着装机量的增长,我国每百万人口CT机拥有量从2008年的6.7台增加到13.4台以上。年我国CT设备总装机量资料来源:公开资料整理2014年中国PET/CT设备的配置型号占比资料来源:公开资料整理年中国CT机进出口贸易
年度 贸易 金额:美元 数量:台
2009 进口 $349,827,893 488
2009 出口 $233,177,128 1,488
2010 进口 $502,549,003 625
2010 出口 $267,180,645 1,778
2011 进口 $696,533,462 820
2011 出口 $297,916,815 1,916
2012 进口 $750,230,870 896
2012 出口 $319,952,050 2,062
2013 进口 $800,884,403 988
2013 出口 $391,274,962 2,365
2014 进口 $629,485,653 755
2014 出口 $437,860,140 2,904 资料来源:中国海关2014年中国CT进口来源地分析
国家 金额:美元 数量
世界 $629,485,653 755
奥地利 $830,280 1
比利时 $442,800 1
中国 $539,585 3
芬兰 $1,859,832 27
法国 $370,544 3
德国 $223,593,758 204
以色列 $47,403,558 100
日本 $193,163,197 287
荷兰 $1,451,600 2
瑞士 $825,399 2
美国 $159,005,100 125 资料来源:中国海关2014年中国CT出口目的地分析
国家 金额:美元 数量
世界 $437,860,140 2,904
美国 $102,124,893 823
日本 $64,972,938 496
法国 $39,389,126 206
荷兰 $38,373,082 191
印度 $24,495,342 168
巴西 $21,022,437 145
德国 $16,886,543 126
澳大利亚 $9,415,303 50
印尼 $6,757,948 43
韩国 $6,699,826 45
意大利 $5,944,615 31
联合王国 $5,698,863 27
阿根廷 $5,340,092 29
新加坡 $4,882,533 64
土耳其 $4,397,008 31
以色列 $4,395,879 21
菲律宾 $4,245,661 25
越南 $4,172,427 35
波兰 $4,072,044 20
阿联酋 $4,058,474 25
沙特阿拉伯 $3,456,609 22
哥伦比亚 $3,426,886 22
西班牙 $3,395,065 22
泰国 $3,303,922 16
埃及 $3,062,303 22
突尼斯 $2,932,525 9
匈牙利 $2,587,098 14
马来西亚 $2,399,390 12
其他亚洲 $2,145,488 10
加拿大 $2,089,903 11
希腊 $1,972,080 11
安哥拉 $1,865,111 1
中国香港 $1,626,097 4
南非 $1,582,384 11
厄瓜多尔 $1,505,837 8
乌兹别克斯坦 $1,404,983 2
巴基斯坦 $1,289,352 6
瑞士 $1,197,563 7
缅甸 $1,158,254 4
黎巴嫩 $1,148,000 5
墨西哥 $1,101,769 6
蒙古 $1,043,154 7
多米尼加 $841,500 5
尼日利亚 $781,240 2
瑞典 $761,985 3
苏丹 $690,030 2
厄立特里亚 $686,719 1
塞内加尔 $674,491 1
委内瑞拉 $614,252 3
柬埔寨 $519,930 4
尼日尔 $515,382 1
科特迪瓦 $496,515 1
摩洛哥 $460,400 2
挪威 $440,640 3
孟加拉国 $436,357 4
秘鲁 $435,359 3
乌拉圭 $423,836 3
索马里 $423,500 1
科摩罗 $351,117 1
埃塞俄比亚 $346,032 1
马达加斯加 $335,606 1
吉布提 $307,023 1
黑山共和国 $298,000 1
斐济 $297,919 1
丹麦 $292,377 2
宏都拉斯 $286,877 1
哥斯达黎加 $275,047 2
毛利塔尼亚 $272,600 1
肯尼亚 $260,000 1
比利时 $241,342 1
阿尔及利亚 $240,000 1
约旦 $210,000 1
巴拉圭 $207,770 1
尼泊尔 $202,364 2
吉尔吉斯斯坦 $188,340 1
尼加拉瓜 $152,900 1
萨尔瓦多 $152,775 1
莫桑比克 $149,610 1
斯里兰卡 $146,329 1
奥地利 $119,803 1
危地马拉 $104,311 1
巴拿马 $102,480 1
文莱 $61,678 3
坦桑尼亚 $13,097 1
俄罗斯联邦 $3,800 1 资料来源:中国海关& &&近年来,西门子、东芝和通用电气把各自的发展方向分别倾注于不同的领域:西门子更关注采集图像的速度(时间分辨率),这是决定心脏扫描图像质量的关键;东芝则全力投入扫描覆盖范围的扩展,力求达到每次采集覆盖更大的范围;通用电气更多地强调提高图像的空间分辨率,以便明确诊断更微小的病变。& &&近两年,西门子公司和东芝公司在各自关注的领域都有长足的发展,西门子的双源CT和320排CT都己经投入市场。由于至今投放市场的时间还比较短,还无法分辨市场对哪一个发展方向的认可程度更高。通用电气的发展目标到目前为止只是处于研发阶段,还没能实现产品化。这使得通用电气首次缺席高端市场,处于不利的竞争地位。通用电气凭借传统的市场领导者地位,依靠在客户中声誉和优势的市场营销策略,依然创造了不俗的业绩,市场份额虽有下降,但仍列市场第一的位置。飞利浦和其它几家公司的创新发展方向一直不够明确,处于市场跟随者地位。CT机产业主要品牌
序号 主要品牌
1 通用电气
7 东软公司
8 安科公司 资料来源:公开资料整理
中国产业信息网微信公众号
中国产业信息网微信服务号
过去一年,中国的农村发生了翻天覆地的变化。作为重要生…
全国咨询热线:400-700-小时) 业务咨询电话:010-0-600-8596 传真:010- 客服QQ: 客服电邮:
chyxx.com, All Rights Reserved 产业信息网 版权所有 运营公司:智研咨询集团你真的会写循环吗--8种遍历方法执行速度深度°对比关于数组或对象遍历,相信很多人都没有深入观察过执行效率。这是一个曾在群里吵翻天的话题,读懂后你将成为遍历效率话题的大师。
我的博客:
原文链接:
遍历数组或对象是一名程序员的基本素养之一. 然而遍历却不是一件简单的事, 优秀的程序员知道怎么去选择合适的遍历方法, 优化遍历效率. 本篇将带你走进JavaScript遍历的世界, 享受分析JS循环的快感. 本篇所有代码都可以直接运行, 希望您通读本篇后, 不止是浏览, 最好是亲手去实践下.
js有如下两种数据需要经常遍历
数组(Array)
对象(Object)
同时又提供了如下8种方法方便我们遍历元素
while(或do~while)
$(selecter).each
最终我们将分析遍历效率选出最佳遍历选手.
本文将针对如下两种数据进行详细的分析和举栗. 下面举栗中如果不加特殊说明将会用到如下数据.
var array = ["囚徒","过客","领袖"];
var o = {0:"linda",1:"style",2:"nick",length:3};
语法: for(初始化; 循环执行条件; 每遍历一个元素后做的事情;){}
(function(){
for(var i=0,length=array.i&i++){
console.log(array[i]);
})();for循环只能遍历数组, 不能遍历对象. 写for循环时有两点需要注意.
其一, 为了避免遍历时执行多遍计算数组长度的操作, 影响效率,
建议在循环开始以变量的形式缓存下数组长度, 若在循环内部有可能改变数组长度, 请务必慎重处理, 避免数组越界.
JavaScript中并没有类似java的块级作用域, for循环内部定义的变量会直接暴露在外(如 i,循环退出后,i变量将等于数组长度, 后续代码将能访问到 i 变量的值), 因此建议将for循环置于闭包内. 特别要注意的是: 如果在循环内部, 前一个元素的遍历有可能影响到后一个元素的遍历, 那么for循环内部方法也需要置于闭包之内.
语法: do{...}while(true);
(function() {
var i = 0,
len = array.
if (i == 2) {
console.log('array['+ i +']:' + array[i]);
} while(i&len);
})();do/while的语法简化了循环的实现, 只保留对循环条件的判断, 所以我们要在循环内部构造出循环退出的条件, 否则有可能造成死循环. 特别要注意的是: 使用 continue 跳出本次遍历时, 要保证循环能够自动进入到下一次遍历, 因此保证循环走到下一次遍历的语句需要放到 continue 前面执行, 建议置于循环头部.(如上, i++ 语句最好放置循环头部)
do/while 循环与for循环大体差不多,只支持数组遍历, 多用于对循环退出条件不是很明确的场景. 一般来说不建议使用这种方式遍历数组.
语法: array.forEach(function(item){}), 参数item表示数组每一项的元素
array.forEach(function(item){
if(item=="囚徒")
console.log(item);
});forEach回调function默认有三个参数: item, index, array.
使用forEach循环有几点需要特别注意:
forEach无法遍历对象
forEach无法在IE中使用,只是在firefox和chrome中实现了该方法
forEach无法使用break,continue跳出循环,使用return时,效果和在for循环中使用continue一致
语法: for(var item in array){}
for(var item in array){
console.log(item);
for(var item in o){
console.log(item);
}for in 可用于遍历数组和对象, 但它输出的只是数组的索引和对象的key, 我们可以通过索引和key取到对应的值. 如下:
for(var item in array){
console.log(array[item]);
for(var item in o){
console.log(o[item]);
语法: $.each(array|o, function(i, ele){}) 支持数组和对象
$.each(array, function(i, ele){
console.log(i,ele,this==ele);
$.each(o, function(i, ele){
console.log(i,ele,this==ele);
这里我们注意到 this对象 指向当前属性的值,这是因为:
参考jQuery api:
$.each() 方法会迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。更重要的是,回调函数是在当前DOM元素为上下文的语境中触发的。因此关键字 this 总是指向这个元素。
同时,上述遍历时, o 对象的属性中有一个length属性并没有被输出. 这是为什么呢? 请耐心往下看.
首先, 我们来看看遍历对象o时, 当前的this对象到底是什么?
$.each(o, function(i, ele){
if(this=="linda"){
console.log(this,this==ele);
$.each(this, function(e, ele2) {
console.log(e, ele2);
我们发现, this对象等于回调函数的第二个形参. 且它的 length 属性和 [[PrimitiveValue]] 属性并没有被打印出来, 为此我们来查看下length的内部属性.
$.each(o, function(i, ele){
if(this=="linda")
console.log(Object.getOwnPropertyDescriptor(this, 'length'));
可见, this对象的length属性的 enumerable 属性被设置成了false, 这表示该对象不能被列举或遍历, 同时还不能被配置(configurable: false), 也不能被赋值(writable: false).
此时, 前面遍历 o 对象时,它的 length 属性没有被打印出来的疑问似乎有解了. 让我们来看看 o.length 的内部属性吧.
console.log(Object.getOwnPropertyDescriptor(o, 'length'));
o.length 值为3, 可赋值, 可列举, 可配置. 这可不对, 刚刚不是说 enumerable 属性被设置成了false 才不会被遍历吗. 现在该值为 true, 并且还不可遍历. 这不合常理, 自然该有别的原因. 我们接着往下看.
var o = {0:"linda",1:"style",2:"nick",length:1};
$.each(o, function(i, ele){
console.log(i,ele);
var o = {0:"linda",1:"style",2:"nick",length:5};
$.each(o, function(i, ele){
console.log(i,ele);
var o = {0:"linda",1:"style",2:"nick"};
$.each(o, function(i, ele){
console.log(i,ele);
现象明了, 结合jquery源码, 当对象中存在length属性时, $.each 内部使用for循环去遍历对象, 否则它将使用for in循环去遍历, 因此$.each遍历对象遵循如下规律:
如果对象中存在 length 属性, 遍历深度以length属性为准, 即length多大, 遍历多少个元素.
如果对象中不存在 length 属性, 遍历深度以实际内部属性个数为准.
不仅如此, $.each的具体使用过程中还有以下几点需要注意:
使用 return 或者 return true 为跳过一个元素,继续执行后面的循环;
使用 return false 为终止循环的执行, 这是因为在 jquery.each 中, 若返回值指定为false, 才跳出循环, 如果感兴趣请翻看 jquery.each 源码;
无法使用 break 与 continue 来跳过循环.
语法: $(selecter|array|o).each(function(i, ele){})
支持数组和对象, 该方法基本上与$.each方法相同.
$('div').each(function(i,ele){
console.log(this,i,this == ele);
$(array).each(function(i,ele){
if(this == "领袖")
console.log(this,i,this == ele);
$(o).each(function(i,ele){
if(this == "nick")
console.log(this,i,this == ele);
dom表示div元素, 由于this恒等ele, 说明this也表示div元素, 所以this并不是jquery对象, 而是普通的(可以在this上随意使用DOM方法). 使用$(selecter).each方法,请注意以下几点:
i: 即序列值 ele: 表示当前被遍历的DOM元素
this 表示当前被遍历的DOM元素,不能调用jQuery方法, 如需调用jquery方法需要用$符号包裹.如, $(this)
即 Array.prototype.map,该方法只支持数组
语法: array.map(callback[,thisArg]) map方法使用其提供函数的每次返回结果生成一个新的数组.
var array = [1, 4, 9];
var roots = array.map(Math.sqrt);
var array = [1, 4, 9];
var doubles = array.map(function(num) {
return num * 2;
实际上,由于map方法被设计成支持 [鸭式辨型][] , 该方法也可以用来处理形似数组的对象, 例如 NodeList.
var elems = document.querySelectorAll('select option:checked');
var values = Array.prototype.map.call(elems, function(obj) {
return obj.
});甚至还可以用来处理字符串, 如下:
var map = Array.prototype.
var array = map.call('Hello 中国', function(x) {
return x.charCodeAt(0);
console.log(array);
map处理字符串的方式多种多样, 例如 反转等.
var str = '12345';
var output = Array.prototype.map.call(str, function(x) {
}).reverse().join('');
console.log(output);例如 将字符串数组转换为数字数组, 只需一条语句, 如下:
console.log(['1', '2', '3'].map(Number));目前map方法被大部分浏览器支持, 除了IE 6,7,8.
即 Array.prototype.every, 该方法同上述map方法也只支持数组
语法: arr.every(callback[, thisArg]) every 方法用于检验数组中的每一项是否符合某个条件, 若符合则放回true, 反之则返回false.
function isBigEnough(element, index, array) {
return element &= 10;
[12, 5, 8, 130, 44].every(isBigEnough);
[12, 54, 18, 130, 44].every(isBigEnough); 该方法还有简写方式, 如下:
[12, 5, 8, 130, 44].every(elem =& elem &= 10);
[12, 54, 18, 130, 44].every(elem =& elem &= 10); 以上, 遍历数组和对象的8种方法简单的介绍完, 小结如下:
for in , $.each , $().each 既支持对象也支持数组遍历;
for , do/while , forEach 只支持数组;
Array.prototype.map, Array.prototype.every 只支持数组和形似数组的对象;
forEach不能退出循环,只能通过return来进入到下一个元素的遍历中(相当于for循环的continue), 且在IE没有实现该方法;
$.each和$().each循环只能通过return false 来退出循环, 使用return 或 return true 将跳过一个元素, 继续执行后面的循环.
下面我们来测试下上述方法的效率.
注: array数组默认为空, 依次赋值数组长度为1 000 000, 10 000 000, 100 000 000, 分别在 Chrome, Firefox, Safari 浏览器上进行两轮测试, 取测试时间平均值作为比较对象, 时间单位为ms. 如下是测试代码:
var array = [],
length = array.length = ;
console.log(array[0]);
var t1 = +new Date();
for(var i=0;i&i++){
var t2 = +new Date();
console.log('for:' + (t2-t1));
var t1 = +new Date();
var i = 0;
} while(i&length);
var t2 = +new Date();
console.log('do while:' + (t2-t1));
var t1 = +new Date();
array.forEach(function(item){
var t2 = +new Date();
console.log('forEach:' + (t2-t1));
var t1 = +new Date();
for(var item in array){
var t2 = +new Date();
console.log('for in:' + (t2-t1));
var t1 = +new Date();
$.each(array, function(i, ele){
var t2 = +new Date();
console.log('$.each:' + (t2-t1));
var t1 = +new Date();
$(array).each(function(i,ele){
var t2 = +new Date();
console.log('$(ele).each:' + (t2-t1));
var t1 = +new Date();
array.map(function(num){
var t2 = +new Date();
console.log('map:' + (t2-t1));
var t1 = +new Date();
array.every(function(e,i,arr){
var t2 = +new Date();
console.log('every:' + (t2-t1));测试机器正常运行 IDE, 编辑器, 浏览器, qq, 微信等常用应用, 系统空闲. 硬件设备如下:
操作系统: OSX EI Capitan 版本 10.11.5
MacBook Pro(13 英寸,2015 年初期)
处理器: 2.7 GHz Intel Core i5
内存: 8 GB 1867 MHz DDR3
以上多轮测试结果汇总如下三张表(单位:ms):
数组长度为10^6
chrome 52.0.-bit)
Firefox Developer Edition 49.0a2 ()
Safari 9.1.1 ()
(16+19)/2 = 17.5
(6+7)/2 = 6.5
(6+7)/2 = 6.5
(24+17)/2 = 20.5
(7+5)/2 = 6
(5+5)/2 = 5
(19+28)/2 = 23.5
(0+0)/2 = 0
(0+0)/2 = 0
(41+28)/2 = 34.5
(4+4)/2 = 4
(31+29)/2 = 30
(26+32)/2 = 28
(4+4)/2 = 4
(32+26)/2 = 28
(22+24)/2 = 23
(4+5)/2 = 4.5
(41+45)/2 = 43
(29+27)/2 = 28
(306+311)/2 = 308.5
(111+97)/2 = 104
(94+98)/2 = 96
(484+488)/2 = 486
(79+64)/2 = 71.5
数组长度为10^7
chrome 52.0.-bit)
Firefox Developer Edition 49.0a2 ()
Safari 9.1.1 ()
(164+161)/2 = 162.5
(26+30)/2 = 28
(30+31)/2 = 30.5
(163+157)/2 = 160
(27+25)/2 = 26
(28+27)/2 = 27.5
(78+86)/2 = 82
(0+0)/2 = 0
(0+0)/2 = 0
(211+205)/2 = 208
(31+30)/2 = 30.5
(291+289)/2 = 290
(349+282)/2 = 315.5
(24+22)/2 = 23
(259+260)/2 = 259.5
(221+219)/2 = 220
(24+24)/2 = 24
(251+257)/2 = 254
(210+215)/2 = 212.5
()/2 = 2828.5
(699+724)/2 = 711.5
(730+669)/2 = 699.5
()/2 = 4698
(523+546)/2 = 534.5
数组长度为10^8
chrome 52.0.-bit)
Firefox Developer Edition 49.0a2 ()
Safari 9.1.1 ()
()/2 = 1534.5
(222+238)/2 = 230
(261+251)/2 = 256
()/2 = 1578
(236+247)/2 = 241.5
(272+265)/2 = 268.5
(0+0)/2 = 0
(0+0)/2 = 0
(0+0)/2 = 0
()/2 = 24072.5
(212+209)/2 = 210.5
()/2 = 2566.5
()/2 = 23291
(215+206)/2 = 210.5
()/2 = 2564.5
()/2 = 22385.5
(212+215)/2 = 213.5
()/2 = 2549
()/2 = 14649.5
()/2 = 27852.5
()/2 = 7132.5
chrome 奔溃了...
()/2 = 49441
()/2 = 5060.5
综上, 我们发现for in 循环的性能不稳定, 猜测它可能没有进入循环. 因此将数组各元素进行如下赋值. 重新进行如下两轮测试.
var array = [],
length = array.length = 1000000;
for(var i=0;i&i++){
array[i] = 'louis';
数组长度为10^6
chrome 52.0.-bit)
Firefox Developer Edition 49.0a2 ()
Safari 9.1.1 ()
(21+22)/2 = 21.5
(8+10)/2 = 9
(6+5)/2 = 5.5
(22+19)/2 = 20.5
(6+6)/2 = 6
(6+5)/2 = 5.5
(178+184)/2 = 181
(318+268)/2 = 293
(413+464)/2 = 438.5
(42+45)/2 = 43.5
(4+4)/2 = 4
(21+24)/2 = 22.5
(137+153)/2 = 145
(9+8)/2 = 8.5
(38+43)/2 = 40.5
(0+0)/2 = 0
(0+0)/2 = 0
(0+0)/2 = 0
(85+84)/2 = 84.5
(15+19)/2 = 17
(37+25)/2 = 31
(81+83)/2 = 82
(34+31)/2 = 32.5
(37+46)/2 = 41.5
数组长度为10^7
chrome 52.0.-bit)
Firefox Developer Edition 49.0a2 ()
Safari 9.1.1 ()
(171+157)/2 = 164
(27+26)/2 = 26.5
(26+28)/2 = 27
(168+158)/2 = 163
(27+27)/2 = 27
(28+29)/2 = 28.5
()/2 = 1592
()/2 = 3022.5
()/2 = 5748.5
(347+329)/2 = 338
(32+36)/2 = 34
(171+174)/2 = 172.5
()/2 = 1327.5
(147+137)/2 = 142
(448+469)/2 = 458.5
(0+0)/2 = 0
(0+0)/2 = 0
(0+0)/2 = 0
(438+441)/2 = 439.5
(142+141)/2 = 141.5
(254+248)/2 = 251
(876+935)/2 = 905.5
(315+328)/2 = 321.5
(450+402)/2 = 426
可见, 对数组进行赋值后, 代码运行基本稳定.(every还不清楚为什么执行时间为0.欢迎大神告知原因.)
通过以上 30 次运行测试(实际上为了得到比较稳定的数据, 摈弃了许多异常的测试数据), 我们发现在数组长度为10^6, 10^7, 10^8 时, 代码运行基本稳定. 各方法运行需要的时间大致排序如下:
for ~= do while & forEach ~= map ~= every & $.each & $(e).each & for in
根据统计数据, 可得这8个方法的运行速度大致排序为:
for 与 do while
forEach map every (这3个不相上下,可认为运行速度差不多)
我们翻看jquery代码就会知道, $.each方法内部通过调用for循环来实现, 而$().each是先用jquery包裹数组对象, 然后再调用for循环, 因此后者效率略低于前者.
综上, 最佳遍历选手是 for/do while循环, 推荐大家优先考虑使用它. ( Firefox浏览器由于对forEach循环做了底层优化, 效率接近native,不在我们考虑范围内 ).
从测试数据上猜测, Firefox 与 Safari 似乎对于 for, do while 等都进行了底层优化. 循环执行效率明显优于Chrome.
每次浏览器执行到 for in 循环处, 便会出现卡顿, 猜测浏览器可能正在预加载循环所需资源(后续我将专门分析此处).
想要进一步优化循环效率, 推荐您阅读下篇 .
声明: 本文所有数据均为单机测试, 难免存在误差, 如果发现本文测试数据不对之处, 欢迎批评斧正.
本文就讨论这么多内容,大家有什么问题或好的想法欢迎在下方参与留言和评论.
<span class="like-count" data-v-3f216172 data-v-13f分享到微信扫一扫打开新标签页发现好内容,掘金、GitHub、Dribbble、ProductHunt 等站点内容轻松获取。快来安装掘金浏览器插件获取高质量内容吧!<div class="like-count align-center" data-v-1b7【图文】Deep Edge 2013 产品介绍 v2-5_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Deep Edge 2013 产品介绍 v2-5
&&deep edge产品介绍
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢医学影像三基题库多选题及参考答案第三部分(100题)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
医学影像三基题库多选题及参考答案第三部分(100题)
&&医学影像三基题库多选题及参考答案第一部分(100题)
医学影像三基题库多选题及参考答案第二部分(100题)
医学影像三基题库多选题及参考答案第三部分(100题)
医学影像三基题库多选题及参考答案第四部分(28题)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩4页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 无线话筒怎么连接音响 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信