本发明涉及数据存储领域,特别涉及一种日志链表数据在存储器中的读写方法。
背景技术:
数据在存储器中存储时通常遵循先进先出的方式,即越新存储的数据,存储位置越靠后。日志数据在存储时也不例外。但采用ui界面显示日志数据时,需要显示最新的数据,即最新的日志数据最先显示,若在显示时有新到的日志数据,则还需要实时刷新显示。
数据存储顺序与日志数据显示顺序的不一致,导致日志数据在显示时速度较慢,实时性不强。
技术实现要素:
本发明的目的在于克服已有的日志数据存储顺序与日志数据显示顺序不一致,造成日志数据显示速度慢、实时性不强的缺陷,从而提供一种能有效提高日志显示速度的日志链表数据读写方法。
为了实现上述目的,本发明提供了一种日志链表数据在存储器中的写方法,包括:
步骤101)、初始化写地址warnsave和读地址pageaddr;其中,
所述写地址warnsave包含两个元素:addr和num,其中的addr代表了最新记录的存储地址,num代表了一共存储的记录个数;在初始化写地址warnsave时,num的数值为0,addr的大小为:一个记录长度×待存储的记录个数;其中,在日志数据存储时,待存储的记录个数是已知值;
所述读地址pageaddr仅包含地址元素;
步骤102)当有新的日志记录时,将该新的日志记录按照从高地址到低地址的顺序写入存储器,写地址warnsave减去一个记录的长度,并将最新的写地址warnsave赋予读地址pageaddr。
上述技术方案中,所述步骤102)进一步包括:
102-1)、当有新的日志需要存储时,以写地址warnsave中的addr元素的当前数值所代表的存储器地址作为写操作的起始地址,然后按照从高地址到低地址的顺序 在一段存储单元存储数据;
步骤102-2)、修改写地址warnsave中的addr元素的数值,即将其数值减去当前所存储的日志记录的长度,并为写地址warnsave中的num元素值加1;
步骤102-3)、将写地址warnsave中的addr元素的新的数值赋予读地址pageaddr。
本发明还提供了一种日志链表数据在存储器中的读方法,用于对所述的写方法所存储的日志链表数据进行读取,包括:
步骤201)、从读地址pageaddr开始,按照从低地址开始向高地址的顺序从存储器中读取日志数据,判断当前所读取的日志数据的大小能否达到一页的显示规模,如果是,执行下一步,否则,执行步骤203);
步骤202)、显示当前页的日志数据,然后将读地址pageaddr减去页数乘以每页的个数,接着重新执行步骤201);
步骤203)、显示当前页的日志数据,结束读取操作。
本发明的优点在于:
本发明在显示日志数据时实时性强,显示速度快。
附图说明
图1是日志在gui上显示的示意图;
图2是日志链表数据在存储器中的存储示意图。
具体实施方式
现结合附图对本发明作进一步的描述。
图1为日志在gui上显示的示意图,如图所示,日志在gui上以页的形式显示,每页有多条记录。在机器运行过程中,会存在多个这样的页,具备上翻、下翻页等功能,并且有新日志时,需要实时更新页显示的内容。
下面结合图2对日志链表数据在存储器中的读写方法进行说明。该方法包括:
步骤101)、初始化写地址warnsave和读地址pageaddr。其中,
所述写地址warnsave包含两个元素:addr和num,其中的addr代表了最新记录的存储地址,num代表了一共存储的记录个数。在初始化写地址warnsave时,num的数值为0,addr的大小为:一个记录长度×待存储的记录个数;其中,在日志存储 时,待存储的记录个数是已知值。
所述读地址pageaddr仅包含地址元素,在初始化读地址pageaddr时,其值为最新的写地址warnsave的值。
步骤102)当有新的日志记录时,将该新的日志记录按照从高地址到低地址的顺序写入存储器,warnsave减去一个记录的长度。
以图2所示的fram存储器为例,该存储器的下方表示低地址,上方表示高地址。当有新的日志需要存储时,以写地址warnsave中的addr元素的当前数值所代表的存储器地址作为写操作的起始地址,然后按照从高地址到低地址的顺序在一段存储单元存储数据。完成写操作后,修改写地址warnsave中的addr元素的数值,即将其数值减去当前所存储的日志记录的长度,并为写地址warnsave中的num元素值加1。此外,还需要写地址warnsave中的addr元素的新的数值赋予读地址pageaddr。
按照本发明的方法存储日志后,在读取日志数据时,按照如下步骤实现:
步骤201)、从读地址pageaddr开始,按照从低地址开始向高地址的顺序从存储器中读取日志数据,判断当前所读取的日志数据的大小能否达到一页的显示规模,如果是,执行下一步,否则,执行步骤203);
步骤202)、显示当前页的日志数据,然后将读地址pageaddr减去页数乘以每页的个数,接着重新执行步骤201);
步骤203)、显示当前页的日志数据,结束读取操作。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。