CN103645873A - 一种在趋势曲线系统中实现高效数据缓存的方法 - Google Patents
一种在趋势曲线系统中实现高效数据缓存的方法 Download PDFInfo
- Publication number
- CN103645873A CN103645873A CN201310659182.9A CN201310659182A CN103645873A CN 103645873 A CN103645873 A CN 103645873A CN 201310659182 A CN201310659182 A CN 201310659182A CN 103645873 A CN103645873 A CN 103645873A
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- source data
- show
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Digital Computer Display Output (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种在趋势曲线系统中实现高效数据缓存的方法,涉及一种在趋势曲线分析系统中实现快速流畅图形化显示的方法。本发明使用一定的内存空间来优化存储数据,充分利用现有的数据(既包括原始数据,也包括处理后的显示数据),从而大大降低数据请求频率以及由此带来的数据获取和数据传输所产生的系统开销。该方法的核心是对数据进行优化存储,实质就是对内存区域的管理和操作。将获取到的原始数据进行优化存储,在后续需要数据时优先从存储区中读取,大大减少了从外部重复获取数据的概率,显著缩短了趋势曲线显示时的响应时间。
Description
技术领域
本发明属于对流程工厂中的大量数据进行数据处理的技术领域,特别涉及提供了一种在趋势曲线分析系统中实现快速流畅图形化显示的方法。具体涉及到对趋势曲线图形进行缩放和拖动操作情况下如何对所需要的数据进行提取、处理和保存的方法。
背景技术
趋势曲线查看系统是流程工厂中是不可或缺的一个重要组成部分。趋势曲线查看系统对自动化系统的实时监控和故障诊断都是通过趋势曲线来实现。。根据不同的使用者和使用目的,趋势曲线查看系统既需要关注较长时间范围的宏观趋势变化情况,又需要关注某一小段时间范围内的微观趋势变化情况,从系统使用者的角度看,就是对曲线进行缩放和拖动操作,所以趋势曲线的显示过程是涉及到对大量数据进行处理缓存与显示的过程。一般来说,趋势曲线分析系统从外部的压缩数据文件或者数据库中获取原始数据,然后根据显示需要对数据分析处理以后再以图形化的方式显示出来,这个过程包含了大量的数据分析处理。我们知道计算机CPU的计算速度是很快的,趋势曲线分析系统的性能瓶颈在于数据获取和存储环节,一个有效的办法是提高数据的利用率——即实现数据的优化存储。如果不对数据进行缓存,每次刷新画面都从外部数据文件重新获取数据后进行显示,将严重影响系统的性能(最突出的就是刷新延迟),在多个客户端的网络环境下尤为突出。因此,采用一种好的方法对需要显示的数据进行缓存和随机读取,避免因为数据处理造成系统开销过大成了一个亟待解决的问题。
发明内容
本发明的目的在于提供一种在趋势曲线分析系统中实现高效数据优化存储和管理的方法,以提高系统性能,其主要思想是使用一定的内存空间来优化存储数据,充分利用现有的数据(既包括原始数据,也包括处理后的显示数据),从而大大降低数据请求频率以及由此带来的数据获取和数据传输所产生的系统开销。该方法的核心是对数据进行优化存储,实质就是对内存区域的管理和操作。随着计算机内存容量的快速提高,该方法所具有的优势更加明显。
趋势曲线分析系统中有两个常见操作涉及到大量的数据处理,即曲线缩放和曲线拖动。曲线缩放是在图形尺寸不变的情况下,改变图形所显示的时间维长度,比如说,当前显示2个小时时间长度的曲线,如果接下来需要显示4个小时时间长度的曲线,则需要对曲线进行压缩处理,而如果接下来只需要显示半个小时时间长度的曲线,则需要对曲线进行放大处理;曲线拖动则不改变图形所显示的时间维长度,只改变曲线显示的起始时间,比如当前显示8点到10点的数据,接下来需要显示9点到11点的数据。
该发明的实施步骤如下:
步骤1、根据系统设置的最大压缩比和可拖动的页面数以及页面的像素值,计算缓冲区大小,在内存中开辟数据存储区。在趋势曲线分析系统中,每条曲线的数据是独立管理的,所以给每条曲线分配一块独立的存储空间。在用户添加曲线时,系统即根据初始值给每条曲线分配固定大小的内存空间,该内存空间逻辑上分为两部分,即原始数据存储区和显示数据存储区。原始数据存储区用于存储从外部获取到的、未经任何处理的原始数据;显示数据存储区用于存储从原始数据存储区读取并经过相应处理(包括显示的X轴坐标计算,以及数据压缩情况下的压缩计算)后的数据,这些数据可用于直接的图形显示。源数据存储区大小可根据显示器的分辨率、最大压缩率和支持显示画面的拖动页面数计算得到,其计算方法是:源数据存储区域大小=最大压缩比*最大压缩情况下可拖动的页面数*一个页面的像素值;显示数据存储区只需要考虑显示器的分辨率和支持拖动操作的连续页面切换,即显示数据存储区大小=可拖动的页面数*一个页面的像素值。
上述的最大压缩比是指对趋势曲线图形进行压缩处理时,最多可由多少个原始数据点经过处理得到一个显示数据点;可拖动页面数是指存储区所能容纳的总数据量/当前显示画面对应的数据量。
步骤2、采用循环数组和左右指针对缓冲区进行关联和抽象,优化存储原理
对存储区的管理依赖于对存储区内存空间的逻辑抽象。为了提高数据检索的效率,需要对数据项实现随机存取,采用循环数组的办法对分配的存储区内存空间进行抽象可以达到这个目标。指针加索引的内存访问机制可以灵活地实现对原始数据存储区和显示数据存储区的同步关联管理。每个存储区域有自己的头尾索引,其中头索引定位远时点(即距离当前时间最远的数据点,下同),尾索引定位近时点(即距离当前时间最近的数据点,下同)。源数据存储区的头尾索引是当前源数据循环数组的边界,显示数据存储区的头尾索引是当前显示数据循环数组中需要显示到屏幕数据的边界。此外,还定义了一组指针对用于关联原始数据存储区和显示数据存储区,分别叫左指针对和右指针对。左指针对用于定位远时点,一端指向显示数据存储区远时点侧已加载数据的索引,另一端指向对应的原始数据存储区远时点侧已加载数据的索引;右指针对用于定位近时点,一端指向显示数据存储区近时点侧已加载数据的索引,另一端指向对应的原始数据储存区近时点侧已加载数据的索引。
步骤3、移动调整存储区头尾索引实现数据存储区管理
数据存储区的管理是通过调整指针对和索引来实现的。存储区开辟时,指针对和索引处于无效的状态,即头尾指针均指向缓冲区头部位置,索引为-1。系统从外部获取源数据以后,首先将数据存入源数据存储区,同时调整源数据存储区的头尾索引,然后根据当前曲线显示的要求,将原始数据存储区的数据经过处理包括显示的X轴坐标计算,以及数据压缩情况下的压缩计算)以后加载到显示数据存储区,同时调整显示数据存储区的头尾索引以及左右指针对。进行曲线的拖拉时,首先检查显示数据存储区是否有足够的数据。有足够数据的话,调整显示数据存储区的头尾索引即可,否则需要先从源数据缓冲区加载数据,调整头尾索引和指针对。如果源数据存储区数据不足则首先需要从外部请求数据。如果对曲线进行缩放处理,则首先需要重置显示数据缓冲区的数据,然后重新从源数据存储区加载数据。图形缩小操作时还可能存在原始数据存储区数据不足的情况,这时需要从外部请求原始数据,获得数据经过处理后加载数据到显示数据存储区。源数据存储区的数据到显示存储区的数据映射关系取决于缩放倍数,指针调整的步长则与数据量相关。
步骤4、存储区的释放
移除曲线时,需要对存储区所占用的内存进行资源释放。
本发明取得了以下效果:将获取到的原始数据进行优化存储,在后续需要数据时优先从存储区中读取,大大减少了从外部重复获取数据的概率,显著缩短了趋势曲线显示时的响应时间。
附图说明
图1数据流示意图
图2存储区结构示意图
图3、图4、图5数据优化存储工作示意图的三种情况
具体实施方式
下面我们结合附图对该过程实施方法进行详细的说明:
图1是带有优化存储功能的趋势曲线分析系统数据流的简单示意图。趋势曲线分析客户端从外部(比如说,数据服务器)获取数据以后,将数据进行优化存储,需要显示趋势曲线时,从原始数据存储区获取数据,经处理后将结果存储到显示数据存储区,然后进行显示。如果原始数据存储区数据不足时,则从外部获取数据。
图2是存储区结构示意图。原始数据存储区和显示数据存储区分别管理自己的存储空间,它们之间通过左指针对和右指针对进行关联,实现数据优化存储功能。
我们假设曲线分析系统的最大压缩率为200,机器的分辨率为1280*800,支持显示画面的拖动页面数为4,数据的采样周期为500ms。在这样的条件下,原始数据存储区最大容量等于200*1280*4,显示数据存储区的最大容量等于1280*4,在快速数据管理系统中,页面内不经过缩放默认的显示的时间为1280*0.5/60分钟,缩放后页面最长显示时间1280*0.5*200/3600小时。下面简述该方法在一个典型的快速数据管理系统(趋势曲线查看系统)中进行曲线拖拉和缩放操作时,对数据进行高效存储的具体步骤。
首先,当用户第一次在客户端将曲线拖动至显示窗口时,假设此时曲线在该页面下显示的时长为1小时,比如说,1点到2点。
首先,在客户端中开辟原始数据存储区和显示数据存储区。原始数据存储区需要从服务器上的数据文件读取数据,原始数据存储区的数据点数为60*60*2=7200(<200*1280*4),此时压缩率为7200/1280=5.625,小于200,所以显示数据存储区从原始数据存储区读取7200个数据来进行显示数据的处理。如图3所示。
然后,当用户对该曲线进行缩放,需要查看1点到5点的趋势曲线。此时,原始数据存储区中已经有了1点到2点的数据,因此只需要从服务器获取2点到5点的数据即可。此时,原始数据存储区的点数为7200*3=21600(<200*1280*4),压缩率为7200*3/1280=16.875,还是小于200,但因为压缩率发生了变化,显示数据存储区需要重置,然后重新从原始数据存储区读取1点到5点共计7200*4个数据点数。如图4所示。
再次,假设用户需要接着对曲线进行拖动,使得页面上显示的趋势曲线的时间范围从3点7点。此时,原始数据存储区已经有了1点到5点的数据,只需要从服务器获取5点到7点的数据,原始数据存储区此时大小为7200*5(<200*1280*4),缩率为7200*3/1280=16.875,还是小于200,但因为压缩率未发生变化,显示数据存储区3点到5点的显示数据仍然有效,只需要需要从原始数据存储区加载5点到7点的数据即可。如图5所示。
Claims (3)
1.一种在趋势曲线系统中实现高效数据缓存的方法,其特征在于:外部服务器中保存全部原始数据,当需要对趋势曲线进行显示过程中,由存储区向外部服务器请求需要显示的数据;存储区开辟:将数据缓存分为源数据存储区和显示存储区,源数据存储区用于缓存从外部获取到的、未经任何处理的原始数据;显示存储区用于缓存从源数据存储区读取并经过相应处理的数据,这些数据用于直接显示;源数据存储区大小根据显示器的分辨率、最大压缩率和支持显示画面的拖动页面数计算得到的,具体的计算方法是:源数据存储区大小=最大压缩比*最大压缩情况下可拖动的页面数*一个页面的像素值;显示存储区只需要考虑显示器的分辨率和支持拖动操作的连续页面切换,显示存储区=可拖动的页面数*一个页面的像素值;
源数据存储区和显示存储区均有自己头索引和尾索引,源数据存储区的头尾索引是当前源数据循环数组的边界,显示存储区的头尾索引是显示到当前显示数据循环数组中需要显示到屏幕的数据的边界;源数据存储区和显示存储区分别有一组指针,用于关联源数据存储区和显示存储区,分别是左指针对和右指针对;左指针对用于定位远时点,一个指向显示存储区远时点侧已加载数的索引,另一个指对应的源数据存储区远时点侧的已加载数的索引;右指针用于定位近时点,一个指向显示存储区近时点侧已加载数的索引,另一个指对应的源数据存储区近时点侧的已加载数的索引;
首次显示过程中,根据显示要求,从外部服务器获取需要显示的数据后,将数据存入源数据存储区,同时调整源数据存储区的头尾索引,然后根据当前曲线显示的要求,将源数据存储区中需要显示的数据加载到显示存储区,调整显示存储区的头尾索引以及左右指针对,将头尾索引分别指向显示换缓冲区已加载数据的头尾位置,左指针对分别指向显示存储区的尾部位置和对应源数据缓冲区左端位置,右指针对分别指向显示存储区的头部位置和对应源数据缓冲区右端位置;如果进行曲线拖动,首先检查显示存储区是否有足够的数据,如有足够数据,将显示存储区的头尾索引调整到需要显示的两端边界点,否则需要从源数据存储区加载数据,调整左右指针对,将需要显示的数据范围写入显示存储区,如果源数据存储区数据不足则需要从外部服务器读取数据;如果对曲线进行缩放处理,则需要重置显示存储区的数据,再从源数据存储区加载数据,当源数据存储区数据不足时,需要从外部服务器读取数据,然后再次补充加载数据到显示存储区;
当移除曲线时,存储区所使用的内存数据将被释放。
2.如权利要求1所述的在趋势曲线系统中实现高效数据缓存的方法,其特征在于:所述的最大压缩比是对趋势曲线图形进行压缩处理时,最多可由多少个源数据点处理得到一个显示数据点;所述的可拖动页面数是存储区所能容纳的总数据量/当前显示画面对应的数据量。
3.如权利要求1所述的在趋势曲线系统中实现高效数据缓存的方法,其特征在于:所述的头索引定位于距离当前时间最远的数据点,尾索引定位于距离当前时间最近的数据点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310659182.9A CN103645873B (zh) | 2013-12-06 | 2013-12-06 | 一种在趋势曲线系统中实现高效数据缓存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310659182.9A CN103645873B (zh) | 2013-12-06 | 2013-12-06 | 一种在趋势曲线系统中实现高效数据缓存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645873A true CN103645873A (zh) | 2014-03-19 |
CN103645873B CN103645873B (zh) | 2016-08-03 |
Family
ID=50251098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310659182.9A Active CN103645873B (zh) | 2013-12-06 | 2013-12-06 | 一种在趋势曲线系统中实现高效数据缓存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645873B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984278A (zh) * | 2014-05-28 | 2014-08-13 | 天津瑞能电气有限公司 | 长时间多变量监控数据的存储及快速定位读取的方法 |
CN104156192A (zh) * | 2014-08-25 | 2014-11-19 | 广东威创视讯科技股份有限公司 | 一种海量卡口数据的显示方法和系统 |
CN108228130A (zh) * | 2018-01-11 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种嵌入式设备的液晶屏显示方法及装置 |
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN109859286A (zh) * | 2018-12-29 | 2019-06-07 | 上海钒兆钛智能科技有限公司 | 一种用于生成趋势图像的方法及系统 |
CN116069833A (zh) * | 2022-12-30 | 2023-05-05 | 北京航天测控技术有限公司 | 一种基于动态多层级分辨率自适应分析的海量数据处理与可视化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789129A (zh) * | 2010-01-26 | 2010-07-28 | 深圳市五巨科技有限公司 | 快速显示压缩格式图片对称变化后的图片的方法和装置 |
CN101971244A (zh) * | 2008-03-12 | 2011-02-09 | 松下电器产业株式会社 | 显示数据输出装置 |
WO2012068242A1 (en) * | 2010-11-16 | 2012-05-24 | Ncomputing Inc. | System and method for on-the-fly key color generation |
-
2013
- 2013-12-06 CN CN201310659182.9A patent/CN103645873B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971244A (zh) * | 2008-03-12 | 2011-02-09 | 松下电器产业株式会社 | 显示数据输出装置 |
CN101789129A (zh) * | 2010-01-26 | 2010-07-28 | 深圳市五巨科技有限公司 | 快速显示压缩格式图片对称变化后的图片的方法和装置 |
WO2012068242A1 (en) * | 2010-11-16 | 2012-05-24 | Ncomputing Inc. | System and method for on-the-fly key color generation |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103984278A (zh) * | 2014-05-28 | 2014-08-13 | 天津瑞能电气有限公司 | 长时间多变量监控数据的存储及快速定位读取的方法 |
CN104156192A (zh) * | 2014-08-25 | 2014-11-19 | 广东威创视讯科技股份有限公司 | 一种海量卡口数据的显示方法和系统 |
CN104156192B (zh) * | 2014-08-25 | 2017-12-26 | 广东威创视讯科技股份有限公司 | 一种海量卡口数据的显示方法和系统 |
CN108228130A (zh) * | 2018-01-11 | 2018-06-29 | 北京安博通科技股份有限公司 | 一种嵌入式设备的液晶屏显示方法及装置 |
CN109612509A (zh) * | 2018-11-13 | 2019-04-12 | 中电科仪器仪表有限公司 | 一种基于手持式信号测量仪器的趋势图显示处理方法 |
CN109859286A (zh) * | 2018-12-29 | 2019-06-07 | 上海钒兆钛智能科技有限公司 | 一种用于生成趋势图像的方法及系统 |
CN109859286B (zh) * | 2018-12-29 | 2024-01-02 | 上海钒钛智能科技有限公司 | 一种用于生成趋势图像的方法及系统 |
CN116069833A (zh) * | 2022-12-30 | 2023-05-05 | 北京航天测控技术有限公司 | 一种基于动态多层级分辨率自适应分析的海量数据处理与可视化方法 |
CN116069833B (zh) * | 2022-12-30 | 2024-04-19 | 北京航天测控技术有限公司 | 一种基于动态多层级分辨率自适应分析的海量数据处理与可视化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103645873B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103645873A (zh) | 一种在趋势曲线系统中实现高效数据缓存的方法 | |
US8762407B2 (en) | Concurrent OLAP-oriented database query processing method | |
US10055224B2 (en) | Reconfigurable hardware structures for functional pipelining of on-chip special purpose functions | |
US10528481B2 (en) | Apparatus and method for managing storage of data blocks | |
US20180101295A1 (en) | System for displaying elements of a scrollable list | |
JP5744707B2 (ja) | メモリ使用量照会ガバナのためのコンピュータ実装方法、コンピュータ・プログラム、およびシステム(メモリ使用量照会ガバナ) | |
EP2843570B1 (en) | File reading method, storage device and reading system | |
CN104580437A (zh) | 一种云存储客户端及其高效数据访问方法 | |
CN103380417B (zh) | 用于从存储器请求所存储的数据的方法及系统 | |
KR102147356B1 (ko) | 캐시 메모리 시스템 및 그 동작방법 | |
US20160179918A1 (en) | Asynchronous data replication using an external buffer table | |
US11119742B2 (en) | Cache efficient reading of result values in a column store database | |
KR102610636B1 (ko) | 데이터베이스 가속기로의 병렬 컴퓨트 오프로드 | |
US9836516B2 (en) | Parallel scanners for log based replication | |
WO2013155751A1 (zh) | 面向并发olap的数据库查询处理方法 | |
CN114741334A (zh) | 通用单级对象存储器地址空间 | |
CN109117950A (zh) | 基于人工智能设备的分层稀疏张量压缩方法 | |
CN103473732A (zh) | 基于并发控制和双缓存技术的移动gis切片地图展现方法 | |
US20150356162A1 (en) | Method and system for implementing analytic function based on mapreduce | |
US11307984B2 (en) | Optimized sorting of variable-length records | |
CN104113605A (zh) | 一种企业云应用开发的监控处理方法 | |
WO2023179742A1 (zh) | 数据访问方法及系统、硬件卸载设备、电子设备及介质 | |
CN110389967A (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN102314400A (zh) | 一种分散聚合式dma方法及装置 | |
US20170017574A1 (en) | Efficient cache warm up based on user requests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |