信体系推行手记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地图