CN118260161A - 数据写入操作的统计方法、装置、设备、介质和程序产品 - Google Patents

数据写入操作的统计方法、装置、设备、介质和程序产品 Download PDF

Info

Publication number
CN118260161A
CN118260161A CN202410363752.8A CN202410363752A CN118260161A CN 118260161 A CN118260161 A CN 118260161A CN 202410363752 A CN202410363752 A CN 202410363752A CN 118260161 A CN118260161 A CN 118260161A
Authority
CN
China
Prior art keywords
target area
data unit
check value
data
current
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.)
Pending
Application number
CN202410363752.8A
Other languages
English (en)
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bi Ren Technology Co ltd
Original Assignee
Shanghai Bi Ren Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bi Ren Technology Co ltd filed Critical Shanghai Bi Ren Technology Co ltd
Priority to CN202410363752.8A priority Critical patent/CN118260161A/zh
Publication of CN118260161A publication Critical patent/CN118260161A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及芯片写入操作技术领域,提供一种数据写入操作的统计方法、装置、设备、介质和程序产品,其中方法包括:以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取目标区域内任一数据单元的当前校验值;基于任一数据单元的当前校验值,检测是否对目标区域的写操作计数器值进行更新;继续获取目标区域内下一个数据单元的当前校验值,直至对目标区域的扫描时长达到预设时长,基于写操作计数器值得到目标区域的写操作总数。本发明能够实时统计预设时长内对目标区域的写操作次数,有助于及时发现系统中的潜在问题,提高系统的稳定性和可靠性,而且统计结果准确,对硬件也没有新增的要求,具有较低的成本和广泛的应用前景。

Description

数据写入操作的统计方法、装置、设备、介质和程序产品
技术领域
本发明涉及芯片技术领域,尤其涉及芯片写入操作技术领域,特别涉及一种数据写入操作的统计方法、装置、设备、介质和程序产品。
背景技术
在现代计算机系统中,数据写入操作的统计和分析是调试和性能优化过程中不可或缺的一环。尤其是在包含CPU(Central Processing Unit,中央处理器)和各种具备本地存储器的设备或芯片的复杂系统中,对于特定内存区域写操作的监控和统计显得尤为重要。这种需求通常源于对系统行为深入理解的追求,以及对潜在性能瓶颈或错误的识别。
然而,由于系统中存在多层、多个软件模块和应用,以及多线程并发执行的特点,要确保数据写入操作统计结果的准确性和完整性是一项艰巨的任务。此外,不同软件模块和应用可能通过不同的内存访问接口进行操作,这也增加了统计的复杂性和难度。如果采用硬件统计方案来解决此问题,其成本往往非常高昂,并不适合在所有系统中广泛应用。
发明内容
本发明提供一种数据写入操作的统计方法、装置、设备、介质和程序产品,用以解决数据写入操作统计难度大、成本高、准确性低的缺陷。
本发明提供一种数据写入操作的统计方法,包括:
以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
根据本发明提供的一种数据写入操作的统计方法,所述基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新,包括:
将所述任一数据单元的当前校验值与所述任一数据单元的预设校验值进行比较,并基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新。
根据本发明提供的一种数据写入操作的统计方法,所述基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新,包括:
在所述任一数据单元的当前校验值与所述任一数据单元的预设校验值不一致的情况下,对所述目标区域的写操作计数器值进行更新,并记录当前的所述全局时间戳;
基于所述任一数据单元的当前校验值,对所述任一数据单元的预设校验值进行更新。
根据本发明提供的一种数据写入操作的统计方法,所述目标区域内包括多个数据单元,所述数据单元的确定步骤包括:
获取所述目标区域的数据类型和区域大小;
基于所述数据类型和所述区域大小,对所述目标区域进行分割,得到多个数据单元;
基于各数据单元的初始值,确定所述各数据单元的预设校验值。
根据本发明提供的一种数据写入操作的统计方法,获取所述目标区域内任一数据单元的当前校验值,包括:
读取所述目标区域内任一数据单元的当前值;
应用预设校验算法,对所述任一数据单元的当前值进行处理,得到所述任一数据单元的当前校验值。
根据本发明提供的一种数据写入操作的统计方法,所述继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,包括:
继续获取所述目标区域内下一个数据单元的当前校验值,并基于所述下一个数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
在对所述目标区域内的各数据单元检测完毕且对所述目标区域的扫描时长未达到所述预设时长的情况下,对所述目标区域进行下一轮扫描,直至对所述目标区域的扫描时长达到所述预设时长。
本发明还提供一种数据写入操作的统计装置,包括:
扫描单元,用于以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
检测单元,用于基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
统计单元,用于继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据写入操作的统计方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据写入操作的统计方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据写入操作的统计方法。
本发明提供的数据写入操作的统计方法、装置、设备、介质和程序产品,通过以当前的全局时间戳作为起始时刻,并在预设时长内对目标区域进行扫描,能够实时地捕获和统计特定时间窗内对目标区域的写操作次数,通过对写操作次数的统计和分析,有助于及时发现和响应系统中的潜在问题,提高系统的稳定性和可靠性;通过对目标区域进行分割,获取每个数据单元的当前校验值,并基于这些校验值来检测是否需要对写操作计数器进行更新,由此可以精确地识别出对目标区域的写操作,避免了误报和漏报的情况,提高了统计的准确度。此外,本发明主要依赖于软件层面的实现,不需要额外的硬件设备或接口来支持写操作的统计,只需通过编程实现数据单元的扫描、校验值的获取和写操作计数器的更新等功能即可,具有较低的成本和广泛的应用前景,可以适用于各种具有CPU和本地存储器的系统、设备或芯片中。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据写入操作的统计方法的流程示意图之一;
图2是本发明提供的数据写入操作的统计方法的流程示意图之二;
图3是本发明提供的数据写入操作的统计装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在多线程、多软件模块并发的环境中,不同软件组件可能通过不同的内存访问接口对同一块内存区域进行写操作,这种复杂性使得任何单个组件的故障或不当行为都可能对整个系统的稳定性和性能产生影响。通过统计特定时间窗内对目标内存区域的写操作次数,可以更准确地定位到那些可能导致系统不稳定或性能下降的写操作,从而进一步分析其原因。此外,通过监控写操作的频率和模式,还可以发现那些频繁进行写操作的内存区域,进而分析这些写操作是否必要、是否合理。如果某些写操作是冗余的或者可以通过其他更高效的方式实现,就可以通过优化算法或数据结构来减少这些写操作的次数,从而提高系统的整体性能。
然而,尽管数据写入操作统计在计算机系统调试和性能优化中发挥着重要重要,但在实际应用中也面临着诸多挑战和缺陷。首先,采用硬件解决方案虽然能够在一定程度上对数据写入操作进行统计,但其成本往往非常高昂,不适合在所有系统中广泛应用。其次,即使采用了硬件统计方案,由于系统中存在多层、多个软件模块和应用,以及多线程并发执行的特点,要确保统计结果的准确性和完整性也是一项艰巨的任务。此外,不用软件模块和应用可能通过不同的内存访问接口进行操作,这也增加了统计的复杂性和难度。对此,本发明提供一种数据写入操作的统计方案,能够在提高统计准确性和效率的同时,降低实现的成本,从而克服上述缺陷。
需要说明的是,本发明实施例提供的数据写入操作的统计方法可以应用于芯片内的处理器,通过该芯片内的处理器,使用上层统计工具提供的全局时间戳作为起始时刻进行全区域扫描,可以发现和计数在一段时间内对目标区域的所有写操作,并全部记录在该处理器的内存中,然后输出。通过与上层统计工具的全局时间戳对齐,并利用全局时间戳和上层统计工具所记录的芯片活动之间的耦合关系,可以准确地识别出是哪个软件组件在哪个时间点上对目标区域进行了写操作。
图1是本发明提供的数据写入操作的统计方法的流程示意图之一,如图1所示,该方法包括:
步骤110,以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
需要说明的是,全局时间戳是一种表示时间的数字方式,其通常是一个整数,以秒或毫秒为单位。全局时间戳可以根据上层统计工具来获得,也可以使用处理器内置的计时器得到,还可以使用操作系统提供的API(Application Programming Interface,应用程序编程接口)或函数来获得,本发明实施例对此不作具体限定。此处,上层统计工具是指一个用于观察并统计所有软件组件活动的工具,这类工具能够收集和分析系统或应用的各种数据,如性能指标、事件日志等,帮助开发者和运维人员了解系统的运行状态,发现潜在的性能瓶颈或错误。
具体地,在获得全局时间戳后,可以将当前的全局时间戳作为扫描的起始时刻,对目标区域进行全区域扫描。此处,目标区域即是指进行数据写入操作统计的特定范围或空间。例如,目标区域可以是芯片内部的一个内存区域,也可以是芯片中其他类型的存储空间或资源,如缓存、寄存器、特殊功能寄存区或其他可写入的硬件资源,本发明实施例对此不作具体限定。
对目标区域进行扫描是指通过处理器的指令或程序,对目标区域进行系统的、连续的检查或读取操作,以收集关于该区域的数据或状态信息。扫描的目的是为了检测目标区域是否发生了写操作。为了更精确地对目标区域的写操作进行统计,可以将目标区域分割为多个数据单元,此处,数据单元是指目标区域内存储的基本数据元素,这些数据单元字节、字、双字或其他大小的数据块,具体取决于目标区域的数据结构和存储方式。每个数据单元都包含了一定的信息或数据,这些数据在程序的运行过程中可能会被读取或写入。
可以理解的是,目标区域内可以包括多个数据单元,多个数据单元是通过对目标区域进行分割得到的,此处,对目标区域进行分割是指将目标区域划分为更小的、更易于管理的数据单元。对目标区域的分割可以基于目标区域的大小和数据类型,也可以基于数据的逻辑结构或访问需求等,有助于更高效地处理和统计目标区域内的写操作。
具体而言,在对目标区域进行扫描时,可以先确定目标区域的起始地址和结束地址,以便处理器了解要扫描哪些数据单元。随后,处理器可以按照某种顺序(例如从低地址到高地址)依次读取目标区域内每个数据单元的当前状态或值,对于每个读取到的数据单元,可以计算其校验值,以检测它们的状态或值是否发生了变化,即这些数据单元是否发生了写操作。
每个数据单元的当前校验值是指用来验证数据单元完整性和一致性的一个数值。它可以基于数据单元的当前值计算得出,并用于检测数据是否在传输或存储过程中被修改或损坏。例如,读取到每个数据单元的当前状态或值后,可以根据预先设定的校验算法(如校验和、循环冗余校验、哈希等),对数据单元的内容进行计算,得到其当前的校验值。最后,可以将计算得到的校验值存储起来,以便后续比较。
步骤120,基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
具体地,对于每个数据单元,在计算得到其当前校验值后,可以将当前校验值与之前存储的校验值进行比较,来检测该数据单元是否发生了写操作。如果校验值不同,则说明该数据单元在扫描期间发生了写操作。如果检测到写操作,则相应的写操作计数器会进行更新,以记录发生的写操作次数。
此处,目标区域的写操作计数器值是一个用于记录目标区域内发生写操作次数的数值。每当检测到目标区域内有数据单元被写入或修改时,该计数器值就会相应增加。这个计数器值有助于统计和分析目标区域的写操作活动,从而帮助开发者了解系统的运行状况和优化性能。
具体而言,根据每个数据单元的当前校验值检测是否需要对目标区域的写操作计数器值进行更新,可以包括如下步骤:首先,获取目标区域内每个数据单元的当前校验值,将这些当前校验值与之前存储的校验值(即上一次扫描或检查时的校验值)进行比较。如果两个校验值不相同,则表明该数据单元在两次检查之间发生了写操作,即其内容被修改过。如果检测到数据单元的写操作,则可以对目标区域的写操作计数器值进行更新,即将计数器值增加一定的数量(如增加1),以反映此次写操作的发生。
需要说明的是,在检测到数据单元发生写操作时,可以将该数据单元的当前校验值进行存储,以便在下一次扫描时,将这些保存的校验值与当前校验值进行比较,从而判断是否有写操作发生。
步骤130,继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
具体地,在完成对目标区域内其中一个数据单元的检测后,可以继续下一个数据单元的检测,并重复上述步骤,直至对目标区域内所有的数据单元都检测完毕。如果还在统计的时间窗内,则可以开始下一轮的扫描统计,直至对目标区域的扫描时长达到预设时长,即满足了特定的时间窗。应理解的是,扫描过程可能会对系统的性能产生一定的影响,因为读取数据单元和计算校验值等操作会占用处理器的时间和资源。因此,在实际应用中,可以根据系统的性能和需求来平衡扫描的精度和性能开销。
上述目标区域内的下一个数据单元即是指在当前扫描过程中,按照某种顺序(如内存地址顺序)紧随当前数据单元之后的数据单元。在进行目标区域扫描时,会逐个检查每个数据单元,从起始地址开始,直到达到扫描的终点或满足扫描的时间窗。因此,每处理完一个数据单元后,下一个要处理的数据单元就是当前数据单元的下一个。
对目标区域的扫描时长是指从扫描开始到扫描结束所经过的时间。扫描时长可以通过记录扫描开始和结束的时间戳,并计算它们之间的差值来获得。例如,在扫描开始之间,可以将获得的全局时间戳作为扫描的起始时刻,在扫描过程中,实时获取当前的全局时间戳,由于全局时间戳是实时更新的,因此,可以根据当前的全局时间戳与起始时刻之间的差值,计算得到扫描时长。
可以理解的是,预设时长是指一个预先设定的扫描时间限制,其可以根据实际的统计时间窗来确定。当扫描时长达到预设时长时,表明扫描过程已经达到了预定的时间限制,此时可以停止扫描,并根据写操作计数器值,即可得到目标区域的写操作总数。在扫描过程中,每当检测到目标区域内的数据单元发生写操作时,写操作计数器值就会增加。因此,扫描结束后,写操作计数器的当前值就是目标区域的写操作总数。这个总数反映了在扫描期间目标区域内发生的写操作次数。此处,目标区域的写操作总数是一个统计指标,用于表示在特定时间段内目标区域被写入的次数,其有助于开发者了解目标区域的写操作频率和模式,从而可以对系统的性能进行调优或故障排查。
示例性地,由于多个软件组件能够写入同一个内存区域,可能会发生数据冲突或不一致的情况,例如,一个组件可能正在写入新的数据,而另一个组件可能正在读取旧的数据,这将导致状态错误或不可预测的行为。虽然上层统计工具可以观察并统计所有软件组件的活动,但对于数据的写入操作,其无法知道写操作具体是写在哪个地址上。因此,通过监控和统计写操作,并将写操作发生的时间戳与上层统计工具所记录的软件组件活动和时间进行关联,即可准确地识别和排查上述问题。此外,当系统出现故障或异常行为时,了解哪些写操作在故障发生前后进行,对于定位问题根源非常有帮助,有助于缩小搜索范围,快速找到导致问题的组件。
本发明实施例提供的统计方法,通过以当前的全局时间戳作为起始时刻,并在预设时长内对目标区域进行扫描,能够实时地捕获和统计特定时间窗内对目标区域的写操作次数,通过对写操作次数的统计和分析,有助于及时发现和响应系统中的潜在问题,提高系统的稳定性和可靠性,例如,如果写操作次数突然增加,可能意味着存在内存泄漏、恶意攻击或异常的数据处理逻辑,通过对特定时间窗内的写操作进行实时监测和统计,有助于快速响应并避免潜在问题发生。通过对目标区域进行分割,获取每个数据单元的当前校验值,并基于这些校验值来检测是否需要对写操作计数器进行更新,由此可以精确地识别出对目标区域的写操作,避免了误报和漏报的情况,提高了统计的准确度。此外,本发明主要依赖于软件层面的实现,不需要额外的硬件设备或接口来支持写操作的统计,只需通过编程实现数据单元的扫描、校验值的获取和写操作计数器的更新等功能即可,具有较低的成本和广泛的应用前景,可以适用于各种具有CPU和本地存储器的系统、设备或芯片中。
此外,对目标区域的扫描时长和分割方式均可以根据实际需求进行调整,以适应不同场景下的需求,通过将本发明实施例提供的方法与其他监控和调试工具相结合,可以提供更为全面的系统分析和优化支持。
基于上述实施例,步骤120具体包括:
步骤121,将所述任一数据单元的当前校验值与所述任一数据单元的预设校验值进行比较,并基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新。
具体地,目标区域内任一数据单元的预设校验值是指预先为该数据单元设定的一个标准校验值,用于在后续的检查过程中与当前计算出的校验值进行比较,以判断数据是否发生了改变。预设校验值可以在将目标区域分割为多个数据单元时确定,并保存下来以供后续使用。应理解的是,每个数据单元的预设校验值的计算方法可以与计算当前校验值的方法相同,即使用相同的校验算法对数据单元的内容进行计算获得。
针对每个数据单元,在计算得到其当前校验值后,可以将该数据单元的当前校验值与预设校验值进行比较。该比较过程是一个简单的数值比较过程,即取出预存的预设校验值,并将其与当前计算得到的校验值进行逐一比对,从而得到比较结果。此处,比较结果有两种情况,一是当前校验值与预设校验值相同,表明数据单元在两次校验之间没有发生变化;二是当前校验值与预设校验值不同,表明数据单元在此期间被修改过。
根据比较结果,即可判断是否需要对目标区域的写操作计数器值和该数据单元的预设校验值进行更新。如果当前校验值与预设校验值相同,表明数据单元没有发生写操作,此时不需要对写操作计数器值进行更新,同时也不需要更新该数据单元的预设校验值,因为它仍然有效。因此,可以直接继续对下一个数据单元进行检测。如果当前校验值与预设校验值不同,则表明数据单元发生了写操作。此时,可以对目标区域的写操作计数器值进行更新,以反映这次写操作的发生。同时,还可以更新该数据单元的预设校验值,以便在下次校验时使用新的、正确的校验值。
本发明实施例提供的方法,在判断数据单元是否发生写操作时,通过比较当前校验值和预设校验值,可以加快比较速度,因为校验值要比原始数据小很多,有助于提高检测速度和统计效率。特别是在处理大量数据或需要频繁检查数据更新时,这种效率优势尤为明显。此外,通过比较校验值,有助于确保数据的完整性和一致性,通过检测并计数写操作,可以及时发现并处理可能的数据损坏或篡改情况。
基于上述实施例,步骤121中,所述基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新,包括:
在所述任一数据单元的当前校验值与所述任一数据单元的预设校验值不一致的情况下,对所述目标区域的写操作计数器值进行更新,并记录当前的所述全局时间戳;
基于所述任一数据单元的当前校验值,对所述任一数据单元的预设校验值进行更新。
具体地,对于每个数据单元而言,该数据单元的当前校验值与预设校验值不一致,表明在数据单元被读取以进行校验的当前时刻,该数据单元的内容与上一次校验时保存的内容不同。这意味着自上一次校验以来,该数据单元已经被修改或写入过新的数据。在此情况下,可以对目标区域的写操作计数器值进行更新。例如,可以读取当前写操作计数器的值,并将该值增加1,以反映发生了一次写操作,将更新后的写操作计数器值写回到内存中。
此外,在该数据单元的当前校验值与预设校验值不一致,即检测到该数据单元发生写操作的情况下,可以记录当前的全局时间戳,这样可以提供关于写操作发生时间的信息,以便后续可以与上层统计工具的记录相结合,来分析写操作的频率和模式,以了解系统的使用情况和性能,或者在出现问题时,帮助开发者定位写操作发生的具体时间,以便进行故障排查。
进一步地,在检测到数据单元发生写操作的情况下,还可以根据该数据单元的当前校验值,对其预设校验值进行更新。具体而言,可以保存数据单元的当前校验值,并将该当前校验值复制或移动到预设校验值的位置,覆盖原有的预设校验值。这个新的当前校验值就成为了该数据单元的预设校验值,用于下一次比较。
本发明实施例提供的方法,能够持续跟踪数据单元的变化,并在每次校验时都使用最新的、正确的校验值作为参考,有助于确保校验机制的有效性,并及时检测到任何后续的写操作。
基于上述任一实施例,所述目标区域内包括多个数据单元,所述数据单元的确定步骤包括:
获取所述目标区域的数据类型和区域大小;
基于所述数据类型和所述区域大小,对所述目标区域进行分割,得到多个数据单元;
基于各数据单元的初始值,确定所述各数据单元的预设校验值。
具体地,目标区域的数据类型和区域大小是描述目标区域特性的两个重要参数,其中,数据类型指的是目标区域中存储的数据的类型,例如整数、浮点数、字符或二进制数据等,数据类型决定了数据的表示方式、存储需求以及可进行的操作。区域大小则指的是目标区域在内存或存储空间中所占用的字节数或位数,它决定了目标区域能够容纳的数据量以及数据的布局方式。此处,可以通过调用编程语言的特定函数或方法,来查询获得目标区域的数据类型和区域大小,也可以直接访问目标区域的内存地址,通过读取内存内容来确定数据类型和区域大小,本发明实施例对此不作具体限定。
在获得目标区域的数据类型和区域大小后,可以根据数据类型和区域大小对目标区域进行分割。首先,可以根据数据类型和大小,选择合适的分割策略,例如,对于连续的内存区域,可以根据每个数据单元的大小进行均匀分割。随后,基于区域大小和每个数据单元的大小,计算出分割点的位置。最后,在分割点处将目标区域划分为多个数据单元即可。
在划分得到多个数据单元后,可以根据每个数据单元的初始值,计算得到每个数据单元的预设校验值并进行保存。此处,数据单元的初始值即是指数据单元被创建时的值。通过使用适当的校验算法(如循环冗余校验、哈希函数等)对初始值进行计算,即可得到校验值。将计算得到的校验值设置为该数据单元的预设校验值,用于后续的比较和校验操作。
可以理解的是,上述在计算得到数据单元的预设校验值时,可以采用CRC(Cyclicredundancy check,循环冗余校验),算法简单,执行速度快。而对于数据单元具体如何划分,是一个对检测速度和校验值表大小的考虑,与芯片处理器的性能也相关。此处,校验值表是指构建得到的所有数据单元的预设校验值集合。例如,如果要检测一个10MB的目标区域,采用128byte的数据单元,需要20us完成一个数据单元的检测,则需要10MB÷128B×20us=1.6s才能检测全部区域。更精细的采样率,需要有更强大的处理器性能以及它访问其内存的速度。
基于上述任一实施例,步骤110中,获取所述目标区域内任一数据单元的当前校验值,包括:
步骤111,读取所述目标区域内任一数据单元的当前值;
步骤112,应用预设校验算法,对所述任一数据单元的当前值进行处理,得到所述任一数据单元的当前校验值。
具体地,数据单元的当前值是指在当前时刻该数据单元所存储的具体数值或内容,其可能是一个数字、一段文本、一个二进制序列等,具体取决于数据单元的数据类型和用途。在编程中,如果数据单元是内存中的一个变量或数组元素,可以直接通过变量名或索引来访问它。如果数据单元存储在文件或数据库中,可以使用相应的文件函数或数据库查询语句来读取它。
对于目标区域内的每个数据单元,在读取到数据单元的当前值后,可以使用预设校验算法对其当前值进行处理,从而计算得到该数据单元的当前校验值。此处,预设校验算法是一种用于验证数据完整性和一致性的算法。它通过对数据单元的内容进行计算,生成一个校验值,这个校验值可以被用来比较数据是否发生了变化。例如,预设校验算法可以是CRC校验,算法简单,执行速度快。
具体而言,根据预设校验算法对数据单元的当前值进行处理以得到当前校验值,可以包括如下步骤:首先,从数据单元中读取当前值,将读取到的当前值作为输入,应用预先设定的校验算法进行计算,算法处理完数据后,会生成一个校验值,这个值就是当前校验值。
基于上述任一实施例,步骤130中,所述继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,包括:
继续获取所述目标区域内下一个数据单元的当前校验值,并基于所述下一个数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
在对所述目标区域内的各数据单元检测完毕且对所述目标区域的扫描时长未达到所述预设时长的情况下,对所述目标区域进行下一轮扫描,直至对所述目标区域的扫描时长达到所述预设时长。
具体地,在完成对目标区域内当前数据单元的检测后,可以继续对下一个数据单元进行检测,即读取下一个数据单元的当前值,并应用预设校验算法对该数据单元的当前值进行处理,以得到该数据单元的当前校验值,并将其与该数据单元的预设校验值进行比较。根据比较结果,可以检测是否需要对目标区域的写操作计数器值进行更新。如果比较结果一致,表明该数据单元没有发生写操作,此时不需要对写操作计数器值进行更新,同时也不需要更新该数据单元的预设校验值。如果比较结果不一致,则表明该数据单元发生了写操作,此时可以对目标区域的写操作计数器值进行更新,以反映这次写操作的发生,同时,还可以更新该数据单元的预设校验值,以便在下次校验时使用新的、正确的校验值。
在完成对目标区域内所有数据单元的检测后,如果还在统计的时间窗内,即对目标区域的扫描时长未达到预设时长,则可以对目标区域开始下一轮的扫描,直至扫描时长达到预设时长(即满足了统计的时间窗)。此处,在对目标区域进行下一轮的扫描时,可以重新启动一个新的计数器,在停止扫描后,可以根据该目标区域所有的写操作计数器值,来统计得到该目标区域的写操作总数。
本发明实施例提供的方法,通过对目标区域进行持续、动态的扫描和校验,不断地获取数据单元的当前校验值,能够实时检测目标区域中数据的变化情况,有助于及时发现数据错误或篡改,提高数据的实时性和安全性。通过采用循环扫描的方式,直到扫描时长达到预设时长后,才停止对目标区域的扫描,可以实现在特定的时间窗内对目标区域的写操作统计,有助于控制资源消耗,避免对系统性能造成过大影响。
基于上述任一实施例,图2是本发明提供的数据写入操作的统计方法的流程示意图之二,如图2所示,该方法包括:
步骤S1,对目标区域的大小和数据类型进行分析
具体地,区域大小和数据类型(例如,整数、浮点数、结构体等)会影响数据读取和校验计算的效率和准确性,通过获取并确定目标区域的这些特性,可以选择合适的分割策略对目标区域进行划分。
步骤S2,选定数据单元并建立每个单元的校验值表
具体地,根据存放在目标区域内的数据类型和该目标区域的大小,可以对目标区域进行一个最优的“数据单元”(比如128个byte)分割,并为每个单元创建一个校验值。此处的校验值可以是通过CRC校验算法计算得出的,用于快速检测数据是否发生变化。校验值表则存储了每个数据单元的初始校验值。
步骤S3,获取全局时间戳并开始全区域扫描
具体地,在开始扫描目标区域之前,可以获取一个全局时间戳作为扫描的起始点,有助于确定在特定时间窗内发生的写操作。全区域扫描是指遍历整个目标内存区域,检查每个数据单元的状态。
步骤S4,读取一个数据单元并计算其校验值,将计算得到的校验值与预存的校验值表进行比较
具体地,在对整个目标区域进行扫描时,可以逐个扫描数据单元,对于每个数据单元,读取其当前值并计算其校验值。然后,将这个计算出的校验值与校验值表中的对应值进行比较。如果不同,则表明该数据单元在扫描期间被写入了新的值,此时可以更新校验值表中该数据单元的预设校验值,同时写操作的计数器加1,再继续下一个单元的检测。如果相同,则表明该数据单元在扫描期间没有被修改过,此时无需更新校验值表中该单元的值,直接继续下一个数据单元的检测。
重复步骤S4,直至对目标区域内所有的数据单元都检测完毕。如果还在统计的时间窗内,则对目标区域开始下一轮的统计,直至满足了统计的时间窗。
本发明实施例提供的方法,能够统计在特定时间窗内对目标区域的写操作总数,从而可以提供有关内存访问模式和潜在性能瓶颈的信息,有助于优化软件性能、调试并发问题或分析内存使用情况。
基于上述任一实施例,图3是本发明提供的数据写入操作的统计装置的结构示意图,如图3所示,该装置包括:
扫描单元310,用于以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
检测单元320,用于基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
统计单元330,用于继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
本发明实施例提供的统计装置,通过以当前的全局时间戳作为起始时刻,并在预设时长内对目标区域进行扫描,能够实时地捕获和统计特定时间窗内对目标区域的写操作次数,通过对写操作次数的统计和分析,有助于及时发现和响应系统中的潜在问题,提高系统的稳定性和可靠性;通过对目标区域进行分割,获取每个数据单元的当前校验值,并基于这些校验值来检测是否需要对写操作计数器进行更新,由此可以精确地识别出对目标区域的写操作,避免了误报和漏报的情况,提高了统计的准确度。此外,本发明主要依赖于软件层面的实现,不需要额外的硬件设备或接口来支持写操作的统计,只需通过编程实现数据单元的扫描、校验值的获取和写操作计数器的更新等功能即可,具有较低的成本和广泛的应用前景,可以适用于各种具有CPU和本地存储器的系统、设备或芯片中。
基于上述任一实施例,检测单元320包括:
比较子单元,将所述任一数据单元的当前校验值与所述任一数据单元的预设校验值进行比较,并基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新。
基于上述任一实施例,比较子单元具体用于:
在所述任一数据单元的当前校验值与所述任一数据单元的预设校验值不一致的情况下,对所述目标区域的写操作计数器值进行更新,并记录当前的所述全局时间戳;
基于所述任一数据单元的当前校验值,对所述任一数据单元的预设校验值进行更新。
基于上述任一实施例,所述目标区域内包括多个数据单元,该装置还包括确定单元,确定单元用于:
获取所述目标区域的数据类型和区域大小;
基于所述数据类型和所述区域大小,对所述目标区域进行分割,得到多个数据单元;
基于各数据单元的初始值,确定所述各数据单元的预设校验值。
基于上述任一实施例,扫描单元310具体用于:
读取所述目标区域内任一数据单元的当前值;
应用预设校验算法,对所述任一数据单元的当前值进行处理,得到所述任一数据单元的当前校验值。
基于上述任一实施例,统计单元330具体用于:
继续获取所述目标区域内下一个数据单元的当前校验值,并基于所述下一个数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
在对所述目标区域内的各数据单元检测完毕且对所述目标区域的扫描时长未达到所述预设时长的情况下,对所述目标区域进行下一轮扫描,直至对所述目标区域的扫描时长达到所述预设时长。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行数据写入操作的统计方法,该方法包括:以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据写入操作的统计方法,该方法包括:以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据写入操作的统计方法,该方法包括:以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据写入操作的统计方法,其特征在于,包括:
以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
2.根据权利要求1所述的数据写入操作的统计方法,其特征在于,所述基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新,包括:
将所述任一数据单元的当前校验值与所述任一数据单元的预设校验值进行比较,并基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新。
3.根据权利要求2所述的数据写入操作的统计方法,其特征在于,所述基于比较结果,判断是否对所述目标区域的写操作计数器值和所述任一数据单元的预设校验值进行更新,包括:
在所述任一数据单元的当前校验值与所述任一数据单元的预设校验值不一致的情况下,对所述目标区域的写操作计数器值进行更新,并记录当前的所述全局时间戳;
基于所述任一数据单元的当前校验值,对所述任一数据单元的预设校验值进行更新。
4.根据权利要求1所述的数据写入操作的统计方法,其特征在于,所述目标区域内包括多个数据单元,所述数据单元的确定步骤包括:
获取所述目标区域的数据类型和区域大小;
基于所述数据类型和所述区域大小,对所述目标区域进行分割,得到多个数据单元;
基于各数据单元的初始值,确定所述各数据单元的预设校验值。
5.根据权利要求1所述的数据写入操作的统计方法,其特征在于,获取所述目标区域内任一数据单元的当前校验值,包括:
读取所述目标区域内任一数据单元的当前值;
应用预设校验算法,对所述任一数据单元的当前值进行处理,得到所述任一数据单元的当前校验值。
6.根据权利要求1至5任一项所述的数据写入操作的统计方法,其特征在于,所述继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,包括:
继续获取所述目标区域内下一个数据单元的当前校验值,并基于所述下一个数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
在对所述目标区域内的各数据单元检测完毕且对所述目标区域的扫描时长未达到所述预设时长的情况下,对所述目标区域进行下一轮扫描,直至对所述目标区域的扫描时长达到所述预设时长。
7.一种数据写入操作的统计装置,其特征在于,
扫描单元,用于以当前的全局时间戳为起始时刻,对目标区域进行扫描,获取所述目标区域内任一数据单元的当前校验值;
检测单元,用于基于所述任一数据单元的当前校验值,检测是否对所述目标区域的写操作计数器值进行更新;
统计单元,用于继续获取所述目标区域内下一个数据单元的当前校验值,直至对所述目标区域的扫描时长达到预设时长,基于所述写操作计数器值得到所述目标区域的写操作总数,所述扫描时长基于所述全局时间戳确定。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述数据写入操作的统计方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据写入操作的统计方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据写入操作的统计方法。
CN202410363752.8A 2024-03-27 2024-03-27 数据写入操作的统计方法、装置、设备、介质和程序产品 Pending CN118260161A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410363752.8A CN118260161A (zh) 2024-03-27 2024-03-27 数据写入操作的统计方法、装置、设备、介质和程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410363752.8A CN118260161A (zh) 2024-03-27 2024-03-27 数据写入操作的统计方法、装置、设备、介质和程序产品

Publications (1)

Publication Number Publication Date
CN118260161A true CN118260161A (zh) 2024-06-28

Family

ID=91606461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410363752.8A Pending CN118260161A (zh) 2024-03-27 2024-03-27 数据写入操作的统计方法、装置、设备、介质和程序产品

Country Status (1)

Country Link
CN (1) CN118260161A (zh)

Similar Documents

Publication Publication Date Title
CN110287052B (zh) 一种异常任务的根因任务确定方法及装置
US7475387B2 (en) Problem determination using system run-time behavior analysis
US10990514B2 (en) Detecting problematic code changes
CN110704297A (zh) 代码评审方法、装置、计算机设备及存储介质
US11782609B2 (en) Method and apparatus for auditing abnormality of block device in cloud platform, device, and storage medium
US11429574B2 (en) Computer system diagnostic log chain
Chen et al. Invariants based failure diagnosis in distributed computing systems
EP3514680B1 (en) Identification of changes in functional behavior and runtime behavior of a system during maintenance cycles
CN111737244A (zh) 数据质量检查方法、装置、计算机系统及存储介质
CN115114064A (zh) 一种微服务故障分析方法、系统、设备及存储介质
CN104102563A (zh) 一种发现服务器系统的mca错误的方法及装置
CN112965845A (zh) 延迟分析方法、电子设备及存储介质
US11467896B2 (en) Sections in crash dump files
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
CN118260161A (zh) 数据写入操作的统计方法、装置、设备、介质和程序产品
US20220188221A1 (en) Regression testing method and regression testing apparatus
CN115658482A (zh) 数据库测试方法及装置、电子设备及计算机可读存储介质
CN111198798B (zh) 服务稳定性的测量方法及装置
CN112905438A (zh) 一种自动化测试方法及装置
CN111475400A (zh) 一种业务平台的验证方法及相关设备
CN114253846B (zh) 自动化测试异常定位方法、装置、设备及可读存储介质
CN115640236B (zh) 一种脚本质量的检测方法及计算设备
CN118312441B (zh) 一种自动化测试方法、装置、存储介质及系统
CN117472513A (zh) 集群数据的处理方法、装置和服务器
CN118113622A (zh) 应用于批量作业排程的检测与修复方法、装置和设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination