System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及电能表,特别是涉及一种基于位图的电能表冻结数据查询方法和装置。
技术介绍
1、当前电能表的冻结数据量增加,使得flash存储的是大量冻结数据,其存储结构为序号+时间+关联对象数据,因此在搜索数据时需要通过时间去匹配数据,也就是就需要计算出当前时间对应的序号。
2、假设第一条存储的时间为2023.1.1/0:15,最后一条数据为2023.10.1/0:15,通常的做法是计算出两个时间的间隔分钟,除以冻结的周期时间,算出一共有多少条冻结数据,然后进行二分查询,算法复杂度为o(log2 n),其中o表示的是算法运行时间的增速,即算法的运行时间以不同的速度增加,也叫渐进时间复杂度,o(log2 n)表示对数时间复杂度,算法执行时间和n是一种对数关系。该方法由于需要知道第一条存储的位置和最后一条存储的位置,在进行时间的查询时就需要去读取flash内存储的时间数据,从而会极大地消耗时间并且消耗flash的读取寿命。
3、因此,现有技术在查找flash存储的冻结数据的时候,查找的性能不足,从而会造成读取查询结果的时候卡顿,影响程序的运行效率,甚至阻塞其他功能的运行,进而影响程序运行性能和器件寿命。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够减少对flash的读取操作、并提高数据查询效率的基于位图的电能表冻结数据查询方法和装置。
2、第一方面,本申请提供了一种基于位图的电能表冻结数据查询方法。
3、方法包括:
5、判断起始点对应的位图bit位是否为1,若为0则用2分法搜索右侧第一个为1的bit位并返回其对应的int数组下标位置,若为1则直接返回起始点对应的int数组下标位置;
6、判断结束点对应的位图bit位是否为1,若为0则用2分法从末尾开始向前搜索第一个为1的bit位并返回其对应的int数组下标位置,若为1直接返回结束点对应的int数组下标位置;
7、根据冻结周期计算起始点和结束点之间的冻结点数量,若冻结点对应的位图bit位为1,则将冻结点对应的冻结数据返回并读取。
8、其进一步的技术方案为,建立冻结数据位图包括:
9、根据最小冻结周期确定int数组下标,并建立相应的冻结数据位图,将冻结存储时间对应的bit位置为1;
10、在到达冻结点时,更新冻结数据位图,将冻结点对应的bit位置为1。
11、其进一步的技术方案为,根据最小冻结周期确定int数组下标,并建立相应的位图,包括:
12、根据最小冻结周期确定一年的冻结数据量;
13、根据冻结数据量确定int数组的长度;
14、根据int数组的长度确定int数组下标,并建立相应的位图。
15、其进一步的技术方案为,最小冻结周期为1min。
16、其进一步的技术方案为,冻结周期为1~15min。
17、第二方面,本申请还提供了一种基于位图的电能表冻结数据查询装置,该装置实现上述任一项的方法的步骤。装置包括:
18、位图建立模块,用于建立冻结数据位图;
19、第一判断模块,用于判断起始点对应的位图bit位是否为1,若为0则用2分法搜索右侧第一个为1的bit位并返回其对应的数组下标位置,若为1则直接返回起始点对应的数组下标位置;
20、第二判断模块,用于判断结束点对应的位图bit位是否为1,若为0则用2分法从末尾开始向前搜索第一个为1的bit位并返回其对应的数组下标位置,若为1直接返回结束点对应的数组下标位置;
21、冻结数据确认模块,用于根据冻结周期计算起始点和结束点之间的冻结点数量,若冻结点对应的位图bit位为1,则将冻结点对应的冻结数据返回并读取。
22、其进一步的技术方案为,位图建立模块包括:
23、位图确认单元,用于根据最小冻结周期确定int数组下标,并建立相应的位图,将冻结存储时间对应的bit位置为1;
24、位图更新单元,用于在到达冻结点时,更新位图,将冻结点对应的bit位置为1。
25、其进一步的技术方案为,位图确认单元还包括:
26、冻结数据量确认单元,用于根据最小冻结周期确定一年的冻结数据量;
27、数组长度确认单元,用于根据冻结数据量确定int数组的长度;
28、数组下标确认单元,用于根据int数组的长度确定int数组下标,并建立相应的位图。
29、本专利技术的有益技术效果是:
30、本专利技术通过建立冻结数据位图,利用位图避免原始数据查询,简化了算法复杂度,减少了对flash的读取操作,提高了冻结数据的查询效率。
本文档来自技高网...【技术保护点】
1.一种基于位图的电能表冻结数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述建立冻结数据位图包括:
3.根据权利要求2所述的方法,其特征在于,所述根据最小冻结周期确定int数组下标,并建立相应的位图,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述最小冻结周期为1min。
5.根据权利要求1所述的方法,其特征在于,所述冻结周期为1~15min。
6.一种基于位图的电能表冻结数据查询装置,其特征在于,所述装置实现权利要求1至5中任一项所述的方法的步骤,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述位图建立模块包括:
8.根据权利要求7所述的装置,其特征在于,所述位图确认单元还包括:
【技术特征摘要】
1.一种基于位图的电能表冻结数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述建立冻结数据位图包括:
3.根据权利要求2所述的方法,其特征在于,所述根据最小冻结周期确定int数组下标,并建立相应的位图,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述最小冻结周期为1min。
<...【专利技术属性】
技术研发人员:黄之健,陈文藻,胡恩炜,金炀,姜枫,杨玉勇,缪炜,钱林江,黄金涛,王宁,
申请(专利权)人:江阴长仪集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。