[发明专利]函数执行时间的获取方法及装置在审
申请号: | 202211410814.3 | 申请日: | 2022-11-11 |
公开(公告)号: | CN115756418A | 公开(公告)日: | 2023-03-07 |
发明(设计)人: | 龙佳 | 申请(专利权)人: | 无线生活(杭州)信息科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京尚伦律师事务所 11477 | 代理人: | 赵昕 |
地址: | 311202 浙江省杭州市萧山区经济技*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 执行时间 获取 方法 装置 | ||
本公开是关于函数执行时间的获取方法及装置。该方法包括:获取项目源码中所有的JavaScript文件对应的JavaScript语法树;JavaScript语法树中包括JavaScript文件中所有的函数语法树声明;在各个函数语法树声明对应的函数语法树中插入性能采集语法树,得到修改后的JavaScript语法树;获取修改后的JavaScript语法树对应的新的JavaScript文件产物;在新的JavaScript文件产物中添加函数性能上报指令后,发布上线;函数性能上报指令用于上报性能参数;在检测到用户操作时,获取用户操作所对应的目标函数,并采集目标函数的性能数据;获取目标函数的性能数据,并按照预设方式展示目标函数的性能数据。
技术领域
本公开涉及软件开发技术领域,尤其涉及函数执行时间的获取方法及装置。
背景技术
前端项目编码过程中产生大量的模块与函数用于实现相应功能,通常某个功能拆分为多个流程,单个流程在函数中实现,多个流程在模块中组织,最终实现某个功能,在代码层面,模块对应为一个JavaScript文件,如果项目存在性能问题,运行比较卡顿,则开发者需定位卡顿原因,找出有性能问题的模块和相关函数,对其进行改造优化性能,其本质上是改造模块中的函数,修改其代码以提升性能。
通常开发者有两种方式进行性能问题定位,
方法一:通过开发者工具(比如chrome dev tools)打开项目,然后模拟用户操作,操作完成后工具提供函数执行堆栈与性能相关数据,开发者通过性能相关数据分析出有问题的模块和函数;
方法二:在关键模块和函数中手动埋入性能采集代码,用户在操作界面时,相应模块和函数的性能数据会收集上来,开发者通过分析性能数据,分析有性能问题的模块和函数。
然而,上述的现有技术仍然存在部分不足点:
方法一中,操作者为开发者,无法复现当时用户真实的操作路径,同时由于机器性能不一致会导致定位出的性能问题并不是用户真实遇到的问题,并且开发者工具上手门槛较高,需要一定的学习成本。
方法二中,通过手动埋入性能采集代码效率较低,需对所有模块和函数进行编码,容易出现遗漏无法接入所有的模块和函数,同时如果函数有变动则需要重新编写性能采集代码,维护成本较高。
发明内容
为克服相关技术中存在的问题,本公开实施例提供函数执行时间的获取方法及装置。所述技术方案如下:
根据本公开实施例的第一方面,提供一种函数执行时间的获取方法,包括:
获取项目源码中所有的JavaScript文件对应的JavaScript语法树;所述JavaScript语法树中包括所述JavaScript文件中所有的函数语法树声明;
在各个所述函数语法树声明对应的函数语法树中插入性能采集语法树,得到修改后的JavaScript语法树;所述性能采集语法树用于采集函数所在的模块、函数名称、函数开始执行时间和函数结束执行时间;
获取所述修改后的JavaScript语法树对应的新的JavaScript文件产物;
在所述新的JavaScript文件产物中添加函数性能上报指令后,发布上线;所述函数性能上报指令用于上报性能参数;
在检测到用户操作时,获取用户操作所对应的目标函数,并通过所述性能采集语法树采集所述目标函数的性能数据,所述目标函数的性能数据包括:所述目标函数所在的模块、所述目标函数的名称、所述目标函数的开始执行时间和所述目标函数的结束执行时间;
获取所述目标函数的性能数据,并按照预设方式展示所述目标函数的性能数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无线生活(杭州)信息科技有限公司,未经无线生活(杭州)信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211410814.3/2.html,转载请声明来源钻瓜专利网。