澳门皇冠官网app音信类别实施手记序列是系作者在经常研发中先后遭受的深浅的题目,消息连串实施手记体系是系作者在平常研发中先后碰着的轻重缓急的问题

 

 

表明:信息体系推行手记体系是系作者在日常研发中先后遇到的分寸的题材,也许朴实和微小,但频繁却是平日遭遇的题材。笔者对其中相比较独立的加以收集,描述,归结和享受。

表明:音信连串实施手记体系是系作者在通常研发中程序遇到的大小的题目,也许朴实和分寸,但往往却是平常遇上的题材。笔者对内部相比优良的加以收集,描述,归咎和享用。

摘要:此文描述了作者接触过的一部分音讯体系或平台之间的衔接构型和气象,挂一漏万的总计分享之。

摘要:此文描述了作者接触过的有的信息系列或平台之间的联网构型和情景,挂一漏万的统计分享之。

正文

正文

层层小说目录:信息系列实施手记 (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);

澳门皇冠官网app,属性评估&分析:

特性评估&分析:

  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接口就需要做额外的研商,尝试和优化。这对技术选型也是一个值得思考的事例。

 

 

相关文章