CN102004678A - 操作系统性能分析方法及装置 - Google Patents
操作系统性能分析方法及装置 Download PDFInfo
- Publication number
- CN102004678A CN102004678A CN 201010548676 CN201010548676A CN102004678A CN 102004678 A CN102004678 A CN 102004678A CN 201010548676 CN201010548676 CN 201010548676 CN 201010548676 A CN201010548676 A CN 201010548676A CN 102004678 A CN102004678 A CN 102004678A
- Authority
- CN
- China
- Prior art keywords
- sampled data
- cpu
- module
- command information
- current process
- 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
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种操作系统性能分析方法及装置,其中方法包括:当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断;在所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据;根据所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息;根据所述指令信息对所述采样数据进行分类统计,得到统计信息;根据所述统计信息分析所述操作系统的性能。本发明通过在预设事件发生时对进程参数进行采样得到统计信息进行分析,能够在无报错日志情况下得知造成性能瓶颈的因素,从而提高了操作系统性能分析的质量和效率。
Description
技术领域
本发明涉及一种操作系统性能分析方法及装置,属于计算机技术领域。
背景技术
随着互联网的不断发展,网络应用的规模也在逐渐扩大。一个完整的网络应用系统可能由数十个子系统组成,一个复杂的子系统可能由百万行代码组成。应用规模的扩大和代码量的增多,使得操作系统调试的难度也变得越来越大。在开发过程中,有很多调试错误的方法,但在生产环境中,会遇到很多未知问题和突发事件,除了根据日志进行排查等常规方法以外,一般很少有其他调试方法,尤其是当操作系统出现性能瓶颈且无报错日志情况下,很难找出问题所在。
发明内容
本发明提供一种操作系统性能分析方法及装置,用以在无报错日志情况下分析造成性能瓶颈的因素。
本发明一方面提供一种操作系统性能分析方法,其中包括:
当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断;
在所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据;
根据所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息;
根据所述指令信息对所述采样数据进行分类统计,得到统计信息;
根据所述统计信息分析所述操作系统的性能。
本发明另一方面提供一种操作系统性能分析装置,其中包括:
中断触发模块,用于当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断;
采样模块,用于在中断触发模块触发的所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据;
指令获取模块,用于根据采样模块得到的所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息;
统计模块,用于根据指令获取模块获取到的所述指令信息对所述采样数据进行分类统计,得到统计信息;
分析模块,用于根据统计模块得到的所述统计信息分析所述操作系统的性能。
本发明通过在预设事件发生时对进程参数进行采样得到统计信息进行分析,能够在无报错日志情况下得知造成性能瓶颈的因素,从而提高了操作系统性能分析的质量和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述操作系统性能分析方法实施例的流程图;
图2为本发明所述操作系统性能分析装置实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明所述操作系统性能分析方法实施例的流程图,如图所示,该方法包括如下步骤:
步骤110,当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断。
具体地,可以触发CPU中的高级可编程中断控制器(AdvancedProgrammable Interrupt Controller,简称:APIC)产生不可屏蔽中断(NonMaskable Interrup,简称:NMI)。其中,预设事件是对操作系统进行分析时用户所关心的会造成性能瓶颈的事件。性能计数器(performancecounter)是CPU中硬件级别的计数器,它可以对某些事件进行计数,当计数值累积到某一阈值时,便会溢出,以触发APIC产生上述NMI。在进行分析之前,可以对该性能计数器进行初始化和编程设置,以避免前次性能分析对本次性能分析的结构造成影响。
步骤120,在所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据。
其中,所述采样数据可以包括:当前进程的状态、当前进程的进程标识(ID)、当前进程所属进程组的进程组标识及当前进程对应的二进制文件标识。其中,当前进程是指在采样时刻正在运行的进程。当前进程的状态包括内核态和用户态。当一个进程执行系统调用而陷入内核代码中执行时,则称该进程处于内核态;当进程在执行用户自己的代码时,则称该进行处于用户态。
另外,如果当前进程在编译时指定了调用堆栈指针,则上述采样数据还可以进一步包括函数调用信息,具体可以在进行采样时,遍历所有的堆栈指针,将他们指向的地址记录下来,直接保存在CPU缓冲区当中。
具体地,当得到采样数据后,可以将该采样数据记录到所述CPU的CPU缓冲区。由于CPU缓冲区的容量较小且更新较快,因此,为了避免采样数据的丢失,可以进一步将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。具体的同步方式可以有如下两种:
同步方式一:根据预设的同步周期,将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。例如,可以每1/4HZ的时间执行一次同步操作,以实现定期更新;
同步方式二:当有预定事件发重,将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。例如:当执行munmap()函数或者exit()函数时,CPU缓冲区的数据会被清空,因此也需要执行同步操作,以避免采样数据的丢失。
当完成数据采样后,则可以将触发产生上述NMI的性能计数器的值进行重置,以确保该性能计数器的正常运行。
步骤130,根据所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息。
具体地,当所述当前进程处于用户态时,由于用户代码均对应一个二进制文件,因此可以将该当前进程对应的指令计数器的值转换为相应二进制文件中的偏移量作为所述指令信息。当所述当前进程处于内核态时,由于内核代码不需要对应额外的二进制文件,因此可以直接将该当前进程对应的指令计数器的值作为所述指令信息。
由于上述CPU缓冲区和事件缓冲均是内存中的区域,掉电后会丢失数据,因此,为了永久保存采样数据,还可以进一步将所述事件缓冲区中记录的采样数据及所述指令信息存储为采样数据文件。具体地,为了后期处理数据方便,可以按照“二进制文件名”+“依赖库”+“硬件事件(hardwareevent)”+“进程ID”的方式命名该采样数据文件。并且可以采用哈希方式存储,哈希表的“key”值为上述指令信息,“value”为当前进程在多次采样过程中出现的频率。
步骤140,根据所述指令信息对所述采样数据进行分类统计,得到统计信息。
例如,可以分为应用程序、调用类库等类型,并且可以为每一个分类建立一个调用文件列表,表明用到的二进制文件、内核文件或者其他依赖的文件。
由于指令信息缺乏可读性,因此,可以利用一些工具将统计信息还原成可读符号。其中,可读符号是指在指令代码编译生成目标文件时,保存在符号列表(symbol table)中的内容,这些符号包括函数名、变量名等等。
具体地,当所述当前进程处于用户态时,可以根据所述当前进程对应的二进制文件,将所述统计信息还原为可读符号。通过根据采样数据获取当前程序运行的位置对应于二进制文件中的内容,便可以得知采样时程序正在执行哪个函数等信息。由于某些常用的二进制文件,如C类库文件等,可能被很多其他二进制文件调用,因此在处理的时候会被反复打开调用多次而造成性能影响。为此,可以建立一个逆向调用文件列表,即每一个二进制文件对应调用它的多个文件,在处理的时候可以减少二进制文件打开的次数以提高性能。逆向调用文件建立之后,根据二进制文件找到所有的符号,再根据采样数据,进行符号与指令的对应和转换。符号是可以人为理解的标识,如libc-2.5.so,libphp5.so等。
当所述当前进程处于内核态时,根据所述当前进程对应的内核文件,将所述统计信息还原为可读符号。其中,该内核文件的存储位置可以预先指定。
步骤150,根据所述统计信息分析所述操作系统的性能。
通过对采样数据进行分析可以得知当前进程正在执行哪个函数,或者调用哪个类库等。例如,当上述统计信息表明某些函数或者调用比较频繁,或者执行时需要消耗大量的CPU周期,则可以得知操作系统的性能瓶颈出现在什么地方,从而有利于缩小排查范围。具体地,可以将分析结构生成报表,以表明在统计时间段内,操作系统的哪些函数或调用占用了多少CPU周期,百分比,以及相应的可读符号:包括程序名、类库名、函数名等。
本实施例所述方法通过在预设事件发生时对进程参数进行采样得到统计信息进行分析,能够在无报错日志情况下得知造成性能瓶颈的因素,从而提高了操作系统性能分析的质量和效率。
图2为本发明所述操作系统性能分析装置实施例的结构示意图,如图所示,该操作系统性能分析装置10至少包括:中断触发模块11、采样模块12、指令获取模块13、统计模块14及分析模块15,其工作原理如下:
当操作系统的预设事件使CPU中的性能计数器溢出时,由中断触发模块11触发产生不可屏蔽中断,其中的预设事件是对操作系统进行分析时用户所关心的会造成性能瓶颈的事件,性能计数器是CPU中硬件级别的计数器,它可以对某些事件进行计数,当计数值累积到某一阈值时,便会溢出,以触发APIC产生上述NMI。在进行分析之前,可以对该性能计数器进行初始化和编程设置,以避免前次性能分析对本次性能分析的结构造成影响。
此后,采样模块12在中断触发模块11触发的所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据,有关采样数据的说明可参见上述方法实施例中步骤120的内容,此处不再赘述。
具体地,该装置10中还可以进一步包括记录模块16,将采样模块12得到的所述得到采样数据记录到所述CPU的CPU缓冲区;由于CPU缓冲区的容量较小且更新较快,因此,为了避免采样数据的丢失,可以进一步设置同步骤17,将记录模块16记录到所述CPU缓冲区中的采样数据同步到所述CPU的事件缓冲区,具体的同步方式可以有两种,具体可参见上述方法实施例中步骤120的说明,此处不再赘述。当完成数据采样后,则可以将触发产生上述NMI的性能计数器的值进行重置,以确保该性能计数器的正常运行。
此后,由指令获取模块13根据采样模块12得到的所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息,具体地,当所述当前进程处于用户态时,由于用户代码均对应一个二进制文件,因此可以将该当前进程对应的指令计数器的值转换为相应二进制文件中的偏移量作为所述指令信息。当所述当前进程处于内核态时,由于内核代码不需要对应额外的二进制文件,因此可以直接将该当前进程对应的指令计数器的值作为所述指令信息。由于上述CPU缓冲区和事件缓冲均是内存中的区域,掉电后会丢失数据,因此,为了永久保存采样数据,还可以进一步设置存储模块18,将同步模块17同步到所述事件缓冲区中的采样数据及指令获取模块13获取到的所述指令信息存储为采样数据文件。有关该采样数据文件的说明可参见上述方法实施例中步骤130的相关内容,此处不再赘述。
此后,由统计模块14根据指令获取模块13获取到的所述指令信息对所述采样数据进行分类统计,得到统计信息,例如,可以分为应用程序、调用类库等类型,并且可以为每一个分类建立一个调用文件列表,表明用到的二进制文件、内核文件或者其他依赖的文件。具体地,由于指令信息缺乏可读性,因此可以进一步设置符号还原模块19,当所述当前进程处于用户态时,根据所述当前进程对应的二进制文件,将统计模块14得到的所述统计信息还原为可读符号,当所述当前进程处于内核态时,根据所述当前进程对应的内核文件,将统计模块14得到的所述统计信息还原为可读符号。
最后,由分析模块15根据统计模块14得到的所述统计信息分析所述操作系统的性能。通过对采样数据进行分析可以得知当前进程正在执行哪个函数,或者调用哪个类库等。具体的举例说明可参见上述方法实施例的步骤150,此处不再赘述。
本实施例所述装置通过在预设事件发生时对进程参数进行采样得到统计信息进行分析,能够在无报错日志情况下得知造成性能瓶颈的因素,从而提高了操作系统性能分析的质量和效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种操作系统性能分析方法,其特征在于包括:
当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断;
在所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据;
根据所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息;
根据所述指令信息对所述采样数据进行分类统计,得到统计信息;
根据所述统计信息分析所述操作系统的性能。
2.根据权利要求1所述的方法,其特征在于所述得到采样数据之后还包括:将所述采样数据记录到所述CPU的CPU缓冲区。
3.根据权利要求2所述的方法,其特征在于将所述采样数据记录到所述CPU缓冲区之后还包括:将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。
4.根据权利要求3所述的方法,其特征在于将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区包括:根据预设的同步周期,将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。
5.根据权利要求3所述的方法,其特征在于将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区包括:当有预定事件发重,将所述CPU缓冲区中记录的采样数据同步到所述CPU的事件缓冲区。
6.根据权利要求1所述的方法,其特征在于获取所述当前进程的指令信息包括:
当所述当前进程处于用户态时,将该当前进程对应的指令计数器的值转换为相应二进制文件中的偏移量作为所述指令信息;
当所述当前进程处于内核态时,将该当前进程对应的指令计数器的值作为所述指令信息。
7.根据权利要求3所述的方法,其特征在于所述获取所述当前进程的指令信息之后还包括:将所述事件缓冲区中记录的采样数据及所述指令信息存储为采样数据文件。
8.根据权利要求1所述的方法,其特征在于所述得到统计信息之后还包括:
当所述当前进程处于用户态时,根据所述当前进程对应的二进制文件,将所述统计信息还原为可读符号;
当所述当前进程处于内核态时,根据所述当前进程对应的内核文件,将所述统计信息还原为可读符号。
9.一种操作系统性能分析装置,其特征在于包括:
中断触发模块,用于当操作系统的预设事件使CPU中的性能计数器溢出时,触发产生不可屏蔽中断;
采样模块,用于在中断触发模块触发的所述不可屏蔽中断的中断期间内,对所述CPU的进程参数进行采样,得到采样数据;
指令获取模块,用于根据采样模块得到的所述采样数据中的进程标识,获取该进程标识所对应的当前进程的指令信息;
统计模块,用于根据指令获取模块获取到的所述指令信息对所述采样数据进行分类统计,得到统计信息;
分析模块,用于根据统计模块得到的所述统计信息分析所述操作系统的性能。
10.根据权利要求9所述的装置,其特征在于还包括:
记录模块,用于将采样模块得到的所述得到采样数据记录到所述CPU的CPU缓冲区;
同步模块,用于将记录模块记录到所述CPU缓冲区中的采样数据同步到所述CPU的事件缓冲区;
存储模块,用于将同步模块同步到所述事件缓冲区中的采样数据及指令获取模块获取到的所述指令信息存储为采样数据文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010548676 CN102004678B (zh) | 2010-11-11 | 2010-11-11 | 操作系统性能分析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010548676 CN102004678B (zh) | 2010-11-11 | 2010-11-11 | 操作系统性能分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004678A true CN102004678A (zh) | 2011-04-06 |
CN102004678B CN102004678B (zh) | 2013-06-12 |
Family
ID=43812055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010548676 Expired - Fee Related CN102004678B (zh) | 2010-11-11 | 2010-11-11 | 操作系统性能分析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004678B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598201A (zh) * | 2013-10-31 | 2015-05-06 | 国际商业机器公司 | 指令性能分析的方法和设备 |
CN105975389A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种进程数据提取方法及装置 |
CN106557400A (zh) * | 2015-09-24 | 2017-04-05 | 联发科技股份有限公司 | 设备中动态数据收集的方法以及相应的设备 |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
CN109408323A (zh) * | 2018-09-18 | 2019-03-01 | 珠海金山网络游戏科技有限公司 | 一种服务器lua性能热点分析方法 |
CN109840178A (zh) * | 2017-11-28 | 2019-06-04 | 合肥杰发科技有限公司 | 一种监测日志信息的方法、移动终端以及装置 |
CN112540846A (zh) * | 2020-11-12 | 2021-03-23 | 苏州浪潮智能科技有限公司 | 一种控制服务器性能稳定的方法、装置及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09101910A (ja) * | 1995-10-04 | 1997-04-15 | Hitachi Ltd | 情報処理システム |
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式系统性能的评估方法及系统 |
-
2010
- 2010-11-11 CN CN 201010548676 patent/CN102004678B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09101910A (ja) * | 1995-10-04 | 1997-04-15 | Hitachi Ltd | 情報処理システム |
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式系统性能的评估方法及系统 |
Non-Patent Citations (1)
Title |
---|
《computer》 19960830 Atkins,M.et al. PC software performance tuning 47-54 1-10 第29卷, 第8期 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598201A (zh) * | 2013-10-31 | 2015-05-06 | 国际商业机器公司 | 指令性能分析的方法和设备 |
CN106557400A (zh) * | 2015-09-24 | 2017-04-05 | 联发科技股份有限公司 | 设备中动态数据收集的方法以及相应的设备 |
CN105975389A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种进程数据提取方法及装置 |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
CN109840178A (zh) * | 2017-11-28 | 2019-06-04 | 合肥杰发科技有限公司 | 一种监测日志信息的方法、移动终端以及装置 |
CN109840178B (zh) * | 2017-11-28 | 2023-04-07 | 合肥杰发科技有限公司 | 一种监测日志信息的方法、移动终端以及装置 |
CN109408323A (zh) * | 2018-09-18 | 2019-03-01 | 珠海金山网络游戏科技有限公司 | 一种服务器lua性能热点分析方法 |
CN109408323B (zh) * | 2018-09-18 | 2022-05-10 | 珠海金山网络游戏科技有限公司 | 一种服务器lua性能热点分析方法 |
CN112540846A (zh) * | 2020-11-12 | 2021-03-23 | 苏州浪潮智能科技有限公司 | 一种控制服务器性能稳定的方法、装置及介质 |
CN112540846B (zh) * | 2020-11-12 | 2022-12-20 | 苏州浪潮智能科技有限公司 | 一种控制服务器性能稳定的方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102004678B (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102004678B (zh) | 操作系统性能分析方法及装置 | |
US7739662B2 (en) | Methods and apparatus to analyze processor systems | |
US8990792B2 (en) | Method for constructing dynamic call graph of application | |
Dorier et al. | Omnisc'io: a grammar-based approach to spatial and temporal i/o patterns prediction | |
EP2609501B1 (en) | Dynamic calculation of sample profile reports | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
CN107833051B (zh) | 一种数据统计方法以及系统 | |
Schulz | Extracting critical path graphs from MPI applications | |
CN102981944B (zh) | 一种基于文件系统的日志存储方法 | |
CN106909554B (zh) | 一种数据库文本表数据的加载方法及装置 | |
CN101344865A (zh) | 一种cpu占用率测量方法及装置 | |
JP6691295B2 (ja) | 情報処理装置、プログラム実行状態表示方法およびプログラム実行状態表示プログラム | |
CN109086149A (zh) | 一种微服务接口调用热点分析的方法 | |
CN106020717B (zh) | 数据处理方法及电子设备 | |
CN110908870A (zh) | 一种大型机的资源监控方法、装置、存储介质及设备 | |
CN116737482A (zh) | 一种芯片测试数据的实时收集方法、装置及电子设备 | |
US9858170B2 (en) | Function-calling-information collection method and computer-readable recording medium | |
US20180217913A1 (en) | Systems and methods for performance evaluation of input/output (i/o) intensive enterprise applications | |
US11874753B2 (en) | Log compression | |
CN113342748B (zh) | 日志数据处理方法和装置、分布式计算系统以及存储介质 | |
CN1940886A (zh) | 概况分析系统及方法 | |
CN106095631B (zh) | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 | |
CN104317906A (zh) | Gps监控车台上报数据大规模入库的处理方法 | |
CN107665195A (zh) | 导入大数量数据的方法、装置及系统 | |
CN107832415B (zh) | 一种comtrade二进制数据文件的快速解析方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151030 Address after: 100015 Beijing City, Chaoyang District Shun Street No. 6 hospital of Beijing city LINK12 Patentee after: Beijing SA data Technology Co., Ltd. Address before: 266555 Shandong Jiangshan Qingdao economic and Technological Development Zone Branch Road No. 458 building 18 layer Patentee before: Qingdao Pojaa Intelligent Information Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130612 Termination date: 20171111 |
|
CF01 | Termination of patent right due to non-payment of annual fee |