消息体系实施手记6-JS调用Flex的性能问题同样规章。信息体系推行手记6-JS调用Flex的性质问题同章。

 

 

证明:信息体系推行手记系列是息息相关作者在平时研发中先后撞的轻重的题材,也许朴实和一线,但往往可是常事遇上的问题。笔者对中间比较突出的加以收集,描述,归纳和享用。

证明:信息体系实施手记系列是连锁作者在平时研发中先后撞的大小的题目,也许朴实和薄,但往往也是隔三差五遇上的题材。笔者对其中较独立的加以收集,描述,归纳和分享。

摘要:此文描述了作者接触了之局部信息体系要平台间的衔接构型和情况,挂同一漏万的下结论分享之。

摘要:此文描述了作者接触过的一些信息体系要平台之间的接入构型和情况,挂同一漏万的下结论分享之。

正文

正文

洋洋洒洒随笔目录:信体系执行手记 (http://www.cnblogs.com/taichu/p/5305603.html)

铺天盖地随笔目录:信息体系实行手记 (http://www.cnblogs.com/taichu/p/5305603.html)

作者:太初

作者:太初

转载说明:请指明原作者,连接,及出处。

转载说明:请指明原作者,连接,及出处。

 

 

正文

正文

 

 

当作者实践着,越到小情况下(比如开GIS地图应用),客户端的JS代码往往使调用GIS地图引擎的API。

当笔者实践备受,越到稍微情况下(比如开GIS地图应用),客户端的JS代码往往要调用GIS地图引擎的API。

多少API提供JS接口(版本),那是极其有利于的,有些提供诸如FLEX编程接口的API,让您在JS中调用,也是得,但遇到如下情况,分享之。

稍微API提供JS接口(版本),那是最好有利于之,有些提供诸如FLEX编程接口的API,让你以JS中调用,也是可,但遇到如下情况,分享之。

 

 

咱的客户端是基于GIS地图的运用,用JS代码调用FLEX的API接口,需要经过FLEX的言语以GIS地图上呈现(放置)2万个目标(Object)。

俺们的客户端是因GIS地图的下,用JS代码调用FLEX的API接口,需要经过FLEX的语以GIS地图上表现(放置)2万只目标(Object)。

方法A(老方法):

方法A(老方法):

  1. 以JS中,通过业务层沾2万单设备的音信数量,诸如数组DEV[20000];
  2. 于JS中,将消息数量打包为hashmap(key -> value);
  3. 每当JS中,将hashmap数据结构从JS传入Flex: JS –> Flex;
  4. 于Flex中,获得传播的hashmap结构,并循环显示在GIS地图上;
  5. 每当Flex中,通过hashmap结构提供用key查value的劳务:val =
    devicehashmap.get(key);
  1. 当JS中,通过作业层沾2万只装备的消息数量,诸如数组DEV[20000];
  2. 在JS中,将消息数量打包为hashmap(key -> value);
  3. 当JS中,将hashmap数据结构从JS传入Flex: JS –> Flex;
  4. 在Flex中,获得传播的hashmap结构,并循环显示在GIS地图及;
  5. 每当Flex中,通过hashmap结构提供用key查value的服务:val =
    devicehashmap.get(key);

性能评估&分析:

性评估&分析:

  1. 每当步骤2,3,4负吃了20秒左右,数据量是2万独device;主要是手续3于缓慢;
  2. 开头估价,JS中成hashmap结构要花一定时间,但不多;可惜这种高级结构对JS/Flex两侧是只负责,传入的上用做必要的反省及转移,所以比较缓慢;
  3. 除此以外,考虑到JS/Flex相互调用结构比较复杂,如果传递高级结构,两侧系统易当条分缕析及无相同而会滋生额外的支出;
  1. 于步骤2,3,4被吃了20秒左右,数据量是2万单device;主要是手续3比较缓慢;
  2. 初步估计,JS中结成hashmap结构要花费自然时间,但未多;可惜这种高级结构对JS/Flex两侧是独当,传入的时光要开必要的检讨和更换,所以于缓慢;
  3. 另外,考虑到JS/Flex相互调用结构比较复杂,如果传递高级结构,两侧系统易在分析及无雷同而会挑起额外的付出;

(备注:其实还尝试过方法A的变种,就是当JS这里启动循环2万浅,每次将同一长条设备信息传递让Flex并于GIS地图及显示Object,虽然每次数据量极小,但是来回调用JS/Flex2万潮,效率还低下,所以也放弃了,这里就是不再讨论了)

(备注:其实还品尝了方法A的变种,就是于JS这里启动循环2万涂鸦,每次用同漫长设备信息传送给Flex并以GIS地图上显示Object,虽然每次数据量极小,但是来回调用JS/Flex2万次于,效率又低下,所以啊放弃了,这里虽不再讨论了)

方法B(新方法):

方法B(新方法):

  1. 在JS中,通过作业层得到2万独设施的消息数量,诸如数组DEV[20000];
  2. 以JS中,将消息数量打包为长字符串String(带约定结构/类似JSON);
  3. 在JS中,将String从JS传入Flex: JS –> Flex;
  4. 于Flex中,获得传播String,并分析还原为hashmap,并循环显示在GIS地图上;
  5. 在Flex中,通过hashmap结构提供用key查value的劳动:val =
    devicehashmap.get(key);
  1. 以JS中,通过工作层沾2万个设备的信数量,诸如数组DEV[20000];
  2. 于JS中,将消息数量打包为长字符串String(带约定结构/类似JSON);
  3. 在JS中,将String从JS传入Flex: JS –> Flex;
  4. 每当Flex中,获得传播String,并分析还原为hashmap,并循环显示在GIS地图及;
  5. 以Flex中,通过hashmap结构提供用key查value的劳务:val =
    devicehashmap.get(key);

性评估&分析:

特性评估&分析:

  1. 每当步骤3丁吃了1秒左右(其实是500ms左右),数据量是2万单device;
  2. 始发估价,经典的数据结构String,在大部分体系被还能够挺好之互操作,并取得最简单易行的支持和分析(比如大都是bytes字节频组,最后一个是符号,或者有一个微小的雅的条结构等等),所以传递String极大的骤降了时空支付。而针对JS侧,拼接String比组装hashmap更快把;在Flex侧,自己分析String组装自己之haspmap(不是亮JS的hashmap结构)也十分快。
  3. 整体达标手续1届5消耗以1秒左右,达到要求;
  1. 当步骤3惨遭吃了1秒左右(其实是500ms左右),数据量是2万个device;
  2. 始于估算,经典的数据结构String,在多数系受都能好好的互操作,并收获最好简便易行的支撑以及剖析(比如大都是bytes字节往往组,最后一个凡标志,或者发一个微的优雅的峰结构等等),所以传递String极大的降落了光阴开。而针对性JS侧,拼接String比组装hashmap更快来;在Flex侧,自己分析String组装自己的haspmap(不是清楚JS的hashmap结构)也充分快。
  3. 完全上手续1到5消耗在1秒左右,达到要求;

(备注:其实以品味几栽其他GIS引擎的时刻,我们采用JS/API大红鹰葡京会接口,就从来不遇到如齐的问题,这其实针对技术选型是深重要之。)

(备注:其实以品尝几种植其他GIS引擎的下,我们应用JS/API接口,就从未碰到如达到的问题,这事实上对技术选型是杀要紧之。)

 

 

总结:

总结:

  1. 过多时分,我们开一个网,实现了A和B的并行调用和操作,只是上而已。更多状况下实际使用场景必然产生多少压力以及总体性要求,而如达到了性能,“可用”就不够了,还要考虑“可行”;
  2. 自打很多底法门中找到切实可行的,才是最后目的。这实在要求对各种法子的懂得以及于对发生深切之钻研。但日少,经验少,人力有限,所以只能开代价有限的品味,并连发优化,这也许啊是迭代支付还是快速开发比较提倡的吧。
  3. 性优化自己在前面的字数都略的语到,只要来性能瓶颈,只要不达标物理(理论)可算的习性边界,就能够找到适当的法门来优化。
  4. 除此以外,技术选型也甚关键,对于目前咱们接触的几只GIS引擎,支持JSAPI的且无出现仿佛题材,而非JS的API接口就用开额外的研究,尝试同优化。这对技术选型也是一个值得思考的事例。
  1. 诸多上,我们出一个体系,实现了A和B的交互调用和操作,只是达到而已。更多状况下实际运用场景必然产生多少压力及属性要求,而而达标了性,“可用”就不够了,还要考虑“可行”;
  2. 自众底方式中找到切实可行的,才是最后目的。这事实上要求针对各种艺术的领悟以及于对发深深之研究。但时间少,经验有限,人力有限,所以只能开代价有限的品尝,并频频优化,这可能吧是迭代出还是快开发比较提倡的吧。
  3. 性优化自身以之前的字数就略的讲话到,只要有性能瓶颈,只要非上物理(理论)可计算的性边界,就可知找到确切的方法来优化。
  4. 此外,技术选型也充分重点,对于目前我们沾的几乎单GIS引擎,支持JSAPI的且非出现仿佛题材,而非JS的API接口就用开额外的研讨,尝试与优化。这对准技术选型也是一个值得思考的例子。

 

 

相关文章

admin

网站地图xml地图