消息体系推行手记系列是息息相关作者在平时研发中先后撞的大大小小的题材。信息体系实行手记系列是有关作者于平常研发中程序撞的深浅的问题。

 

 

说明:信息体系推行手记系列是相关作者在平时研发中先后撞的大大小小的问题,也许朴实和轻微,但屡屡却是时常遇到的题目。笔者对里面较独立的加以收集,描述,归纳和享受。

证实:信息体系执行手记系列是系作者于平时研发中程序撞的分寸的问题,也许朴实和一线,但屡次却是常常遇到的题目。笔者对中间较典型的加以收集,描述,归纳和享受。

摘要:此文描述了笔者接触了之有的信息体系或者平台间的过渡构型和状况,挂同一漏万的总分享之。

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

正文

正文

多元随笔目录:信体系实行手记 (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接口就得开额外的研讨,尝试同优化。这对准技术选型也是一个值得思考的事例。

 

 

相关文章