CN115858399A - 一种利用线程栈快照进行代码级性能分析的方法和系统 - Google Patents
一种利用线程栈快照进行代码级性能分析的方法和系统 Download PDFInfo
- Publication number
- CN115858399A CN115858399A CN202310088556.XA CN202310088556A CN115858399A CN 115858399 A CN115858399 A CN 115858399A CN 202310088556 A CN202310088556 A CN 202310088556A CN 115858399 A CN115858399 A CN 115858399A
- Authority
- CN
- China
- Prior art keywords
- snapshots
- thread stack
- stack
- thread
- execution
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种利用线程栈快照进行代码级性能分析的方法和系统,执行程序代码;采集程序代码执行中的第一线程的多个线程栈快照;分析多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;分别对多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;比较多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;以及计算至少一个执行时间的总和,并计算总和与多个线程栈快照的总时间的比值;当该比值小于或等于0.2时,程序代码无需优化;当该比值大于0.2时,对程序代码进行优化。通过采用多次线程栈快照对程序代码执行情况进行分析和汇总,计算出执行时间较长的代码段并进行优化。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种利用线程栈快照进行代码级性能分析的方法和系统。
背景技术
在云时代,虚拟化技术应用日益丰富和成熟,杂乱的应用异常问题接踵而至,如何分析定位问题所在给企业带来了很大的成本,且往往没办法解决问题。
如图1所示,通常我们分析定位一个程序执行缓慢的具体原因时,使用的方式主要分为两种:代码埋点和字节码增强埋点,而无论使用哪种方式,底层一定都是以面向切面这个基础逻辑,通过切面对象,统一在指定程序方法前后添加计算时间差的逻辑代码,从而获取各方法的执行耗时来完成的,因为只有这样才能做到节约开发成本从而大面积的使用。
但是一个程序的逻辑代码那么多,我们又如何能定位到具体的问题代码呢?这时候,很自然的会考虑到增加埋点粒度,比如说对所有的业务层方法都添加上埋点,但是,虽然每个埋点消耗的性能很小,在微秒级别,但是随着数量的增加,甚至因为业务代码重用造成重复埋点或者循环使用,此时的性能开销已经无法忽略,大量的埋点无疑会加大系统资源的开销,造成CPU、内存使用率增加,更有可能拖慢整个业务的执行效率,这也就决定了它的分析只能比较浅显。
发明内容
本申请为了克服现有技术的不足,提供一种利用线程栈快照进行代码级性能分析的方法和系统,本方法和系统无需反复的增删埋点,大大减少了人力开发成本,同时不用承担过多埋点对系统的压力风险和性能消耗,通过对线程栈快照进行分析来进行代码级性能分析,并根据需要进行优化,且采用了两级线程栈快照进行深度分析,并将两级线线程栈快照嵌合实现更为准确的可视化。
为了实现上述目的,本申请采用以下技术方案:
一种利用线程栈快照进行代码级性能分析的方法,包括:
执行程序代码;
采集所述程序代码执行中的第一线程的多个线程栈快照;
分析所述多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;
分别对所述多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;
比较所述多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;以及
计算所述至少一个执行时间的总和,并计算所述总和与所述多个线程栈快照的总时间的比值;
当该比值小于或等于0.2时,所述程序代码无需优化;
当该比值大于0.2时,对所述程序代码进行优化。
进一步地,所述多个线程栈快照的采集时间间隔为4ms-20ms。
进一步地,所述优化包括:
对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
进一步地,所述固定时间为1ms。
进一步地,还包括:
将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
本申请还提供了一种利用线程栈快照进行代码级性能分析的系统,包括:
执行模块,用于执行程序代码;
采集模块,用于采集所述程序代码执行中的第一线程的多个线程栈快照;以及
分析比较模块,用于分析所述多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;
所述分析比较模块还用于分别对所述多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;
所述分析比较模块还用于比较所述多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;
所述分析比较模块还用于计算所述至少一个执行时间的总和,并计算所述总和与所述多个线程栈快照的总时间的比值;
当该比值小于或等于0.2时,所述程序代码无需优化;
当该比值大于0.2时,对所述程序代码进行优化。
进一步地,所述多个线程栈快照的采集时间间隔为4ms-20ms。
进一步地,还包括:
优化模块,用于对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
进一步地,所述固定时间为1ms。
进一步地,还包括:
显示模块,用于将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
附图说明
图1为本申请的现有技术的方法示意图;
图2为本申请的方法示意图;
图3为本申请的系统的结构示意图。
具体实施方式
在本申请的描述中,需要理解的是,术语等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的系统或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
本方法和系统无需反复的增删埋点,大大减少了人力开发成本,同时不用承担过多埋点对系统的压力风险和性能消耗,通过对线程栈快照进行分析来进行代码级性能分析,进行代码的优化,将有问题的代码改写成具有同样的方法栈的代码,从而能够提高执行效率,且采用了两级线程栈快照进行深度分析,能够更加准确定位代码的问题所在,并将两级线线程栈快照嵌合实现更为准确的可视化。
在一些实施例中,如图2所示,本申请提供了一种一种利用线程栈快照进行代码级性能分析的方法,包括:
执行程序代码;
间隔TD-1、TD-2、TD-3、TD-4、TD-5、TD-6、TD-7、TD-8、TD-9、TD-10的时间间隔采集所述程序代码执行中的第一线程的10个线程栈快照;
分析这10个线程栈快照,分别筛选出具有同样的方法栈的连续的线程栈快照,例如TD-5、TD-6、TD-7、TD-8;
分别对TD-5、TD-6、TD-7、TD-8进行快照时间的累加计算,得到执行时间;可以理解的,这里的具有同样的方法栈的连续的线程栈快照有时候时可以多个的,因此形成了多个执行时间;
比较TD-5、TD-6、TD-7、TD-8进行快照时间的累加计算的执行时间,如果该执行时间的数值大于预设阈值,则筛选出来;以及
计算TD-5、TD-6、TD-7、TD-8进行快照时间的累加计算的执行时间,当只有一个执行时间时则单独作为总和,当有多个执行时间时则计算所有执行时间的总和,并计算所述总和与TD-1、TD-2、TD-3、TD-4、TD-5、TD-6、TD-7、TD-8、TD-9、TD-10的总时间的比值;
当该比值小于或等于0.2时,表明所述程序代码无需优化;
当该比值大于0.2时,则对所述程序代码进行优化。
在一些实施例中,TD-1、TD-2、TD-3、TD-4、TD-5、TD-6、TD-7、TD-8、TD-9、TD-10的采集时间间隔为4ms-20ms,可选的,每个采集时间可以相同也可以不同,但是需要在优选的时间范围内,才能满足性能分析的要求。
在一些实施例中,所述优化包括:
对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
在一些实施例中,所述至少一个执行时间中的其他执行时间的分析也可以参照第一执行时间的处理。
在一些实施例中,所述固定时间为1ms,该固定时间能够有效采集到线程栈快照,如果时间再小会造成数量级增加的数据量,如果时间再大则无法准确定位到问题代码所在,所以1ms固定时间的限定是可以即满足内存要求又能够有效定位问题代码。
在一些实施例中,为了更好显示快照以及方便阅读,还包括:
将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
如图3所示,本申请还提供了一种利用线程栈快照进行代码级性能分析的系统1,包括:
执行模块11,用于执行程序代码;
采集模块12,用于采集所述程序代码执行中的第一线程的多个线程栈快照;以及
分析比较模块13,用于分析所述多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;
所述分析比较模块还用于分别对所述多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;
所述分析比较模块还用于比较所述多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;
所述分析比较模块还用于计算所述至少一个执行时间的总和,并计算所述总和与所述多个线程栈快照的总时间的比值;
当该比值小于或等于0.2时,所述程序代码无需优化;
当该比值大于0.2时,对所述程序代码进行优化。
在一些实施例中,所述多个线程栈快照的采集时间间隔为4ms-20ms。
在一些实施例中,还包括:
优化模块14,用于对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
在一些实施例中,所述固定时间为1ms。
在一些实施例中,还包括:
显示模块15,用于将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
在分析定位一个程序执行缓慢的具体原因时,本申请无需反复的增删埋点,大大减少了人力开发成本,同时不用承担过多埋点对系统的压力风险和性能消耗,通过对线程栈快照进行分析来进行代码级性能分析,并根据需要进行优化,且采用了两级线程栈快照进行深度分析,并将两级线线程栈快照嵌合实现更为准确的可视化。
虽然已描述了某些实施方式和一般相关的方法,但是这些实施方式的更改和转变对于所属领域的技术人员来说是清楚的。因此,对示例性的实施方式的以上描述不限定或约束本发明。在不偏离所附权利要求的精神的情况下,其他改变、替换和更改也是可能的。
Claims (10)
1.一种利用线程栈快照进行代码级性能分析的方法,其特征在于,包括:
执行程序代码;
采集所述程序代码执行中的第一线程的多个线程栈快照;
分析所述多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;
分别对所述多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;
比较所述多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;以及
计算所述至少一个执行时间的总和,并计算所述总和与所述多个线程栈快照的总时间的比值;
当该比值小于或等于0.2时,所述程序代码无需优化;
当该比值大于0.2时,对所述程序代码进行优化。
2.根据权利要求1所述的一种利用线程栈快照进行代码级性能分析的方法,其特征在于:
所述多个线程栈快照的采集时间间隔为4ms-20ms。
3.根据权利要求2所述的一种利用线程栈快照进行代码级性能分析的方法,其特征在于,所述优化包括:
对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
4.根据权利要求3所述的一种利用线程栈快照进行代码级性能分析的方法,其特征在于:
所述固定时间为1ms。
5.根据权利要求4所述的一种利用线程栈快照进行代码级性能分析的方法,其特征在于,还包括:
将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
6.一种利用线程栈快照进行代码级性能分析的系统,其特征在于,包括:
执行模块,用于执行程序代码;
采集模块,用于采集所述程序代码执行中的第一线程的多个线程栈快照;以及
分析比较模块,用于分析所述多个线程栈快照,分别筛选出多个具有同样的方法栈的连续的线程栈快照;
所述分析比较模块还用于分别对所述多个具有同样的方法栈的连续的线程栈快照进行快照时间的累加计算,得到多个执行时间;
所述分析比较模块还用于比较所述多个执行时间,筛选出数值大于预设阈值的至少一个执行时间;
所述分析比较模块还用于计算所述至少一个执行时间的总和,并计算所述总和与所述多个线程栈快照的总时间的比值;
当该比值小于或等于0.2时,所述程序代码无需优化;
当该比值大于0.2时,对所述程序代码进行优化。
7.根据权利要求6所述的一种利用线程栈快照进行代码级性能分析的系统,其特征在于:
所述多个线程栈快照的采集时间间隔为4ms-20ms。
8.根据权利要求7所述的一种利用线程栈快照进行代码级性能分析的系统,其特征在于,还包括:
优化模块,用于对于所述至少一个执行时间中的第一执行时间,将所述第一执行时间所对应的所述多个具有同样的方法栈的连续的线程栈快照选出,并分别定义为Z1、Z2、……Zi;
以Z1为起点、Zi为终点执行对应的所述程序代码;
每隔固定时间对所述以Z1为起点、Zi为终点执行对应的所述程序代码采集多个二级线程栈快照;
分析所述多个二级线程栈快照,筛选出不同于所述第一执行时间所对应的方法栈的二级线程栈快照;
对所述筛选出的二级线程栈快照对应的程序代码修改成具有与所述第一执行时间所对应的方法栈相同的方法栈。
9.根据权利要求8所述的一种利用线程栈快照进行代码级性能分析的系统,其特征在于:
所述固定时间为1ms。
10.根据权利要求9所述的一种利用线程栈快照进行代码级性能分析的系统,其特征在于,还包括:
显示模块,用于将所述多个线程栈快照组合成第一图;
将所述多个二级线程栈快照组合成第二图;
将所述第二图嵌入至所述第一图中,得到可视化显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310088556.XA CN115858399B (zh) | 2023-02-09 | 2023-02-09 | 一种利用线程栈快照进行代码级性能分析的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310088556.XA CN115858399B (zh) | 2023-02-09 | 2023-02-09 | 一种利用线程栈快照进行代码级性能分析的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858399A true CN115858399A (zh) | 2023-03-28 |
CN115858399B CN115858399B (zh) | 2023-05-05 |
Family
ID=85657790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310088556.XA Active CN115858399B (zh) | 2023-02-09 | 2023-02-09 | 一种利用线程栈快照进行代码级性能分析的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858399B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150143344A1 (en) * | 2013-11-18 | 2015-05-21 | Microsoft Corporation | Diagnosing Production Applications |
CN107688589A (zh) * | 2017-02-20 | 2018-02-13 | 平安科技(深圳)有限公司 | 数据库系统优化的方法及装置 |
CN111368104A (zh) * | 2018-12-26 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 信息处理方法、装置及设备 |
CN111679984A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 一种性能分析方法和装置 |
CN112596938A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种异常监控方法及装置 |
CN113608982A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 函数执行性能监测方法、装置、计算机设备及存储介质 |
CN113721920A (zh) * | 2021-08-30 | 2021-11-30 | 济南浪潮数据技术有限公司 | 一种应用组件的诊断方法、系统、电子设备及存储介质 |
WO2022199282A1 (zh) * | 2021-03-24 | 2022-09-29 | 北京字节跳动网络技术有限公司 | 线程快照解析方法、装置、设备和存储介质 |
-
2023
- 2023-02-09 CN CN202310088556.XA patent/CN115858399B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150143344A1 (en) * | 2013-11-18 | 2015-05-21 | Microsoft Corporation | Diagnosing Production Applications |
CN107688589A (zh) * | 2017-02-20 | 2018-02-13 | 平安科技(深圳)有限公司 | 数据库系统优化的方法及装置 |
WO2018149085A1 (zh) * | 2017-02-20 | 2018-08-23 | 平安科技(深圳)有限公司 | 数据库系统优化的方法、系统、电子装置及存储介质 |
CN111368104A (zh) * | 2018-12-26 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 信息处理方法、装置及设备 |
CN111679984A (zh) * | 2020-06-08 | 2020-09-18 | 中国银行股份有限公司 | 一种性能分析方法和装置 |
CN112596938A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种异常监控方法及装置 |
WO2022199282A1 (zh) * | 2021-03-24 | 2022-09-29 | 北京字节跳动网络技术有限公司 | 线程快照解析方法、装置、设备和存储介质 |
CN113608982A (zh) * | 2021-07-27 | 2021-11-05 | 远景智能国际私人投资有限公司 | 函数执行性能监测方法、装置、计算机设备及存储介质 |
CN113721920A (zh) * | 2021-08-30 | 2021-11-30 | 济南浪潮数据技术有限公司 | 一种应用组件的诊断方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115858399B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3182288B1 (en) | Systems and methods for generating performance prediction model and estimating execution time for applications | |
Wang et al. | Performance prediction for apache spark platform | |
US9772886B2 (en) | Optimizing execution and resource usage in large scale computing | |
WO2018099299A1 (zh) | 一种图数据处理的方法、装置及系统 | |
US20150339210A1 (en) | Method And System For Resource Monitoring Of Large-Scale, Orchestrated, Multi Process Job Execution Environments | |
US20080140627A1 (en) | Method and apparatus for aggregating database runtime information and analyzing application performance | |
US9367428B2 (en) | Transparent performance inference of whole software layers and context-sensitive performance debugging | |
WO2014143279A1 (en) | Bottleneck detector for executing applications | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
US20170052821A1 (en) | Dynamically scalable data collection and analysis for target device | |
EP2831740A1 (en) | Logical grouping of profile data | |
CN108268546B (zh) | 一种优化数据库的方法及装置 | |
CN103645961B (zh) | 计算密集型并行任务的异常检测方法及系统 | |
CN107391365B (zh) | 一种面向软件缺陷预测的混合特征选择方法 | |
WO2020211253A1 (zh) | 分布式系统中主机数量弹性伸缩方法、装置和计算机设备 | |
CN104391879A (zh) | 层次聚类的方法及装置 | |
CN112988305A (zh) | 策略流程的处理方法、装置、计算机设备及存储介质 | |
CN103744788B (zh) | 基于多源软件数据分析的特征定位方法 | |
CN106776704B (zh) | 统计信息收集方法和装置 | |
CN107679133B (zh) | 一种实用于海量实时pmu数据的挖掘方法 | |
CN116167599B (zh) | 基于bim数据及现场数据的信息平台管理方法及系统 | |
CN115858399A (zh) | 一种利用线程栈快照进行代码级性能分析的方法和系统 | |
Geimer et al. | Recent developments in the scalasca toolset | |
Mohr et al. | Performance measurement and analysis tools for extremely scalable systems | |
CN110209631A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |