一种大图加载检测方法、装置、电子设备及存储介质制造方法及图纸

技术编号:38706669 阅读:10 留言:0更新日期:2023-09-08 14:47
本发明专利技术公开一种适用于金融科技或其它相关技术领域的大图加载检测方法、装置、电子设备及存储介质,方法包括:获取项目源代码,基于所述项目源代码获取程序的字节码文件;基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,其中,所述字节码插桩文件用于按照预设判断方式进行大图加载判断;基于所述更新后的字节码文件,对当前图片进行加载,以判断出当前图片是否为大图后,基于所述判断结果获取日志文件。本发明专利技术解决了现有技术中无法在程序运行过程中检测处大图加载的技术问题。程序运行过程中检测处大图加载的技术问题。程序运行过程中检测处大图加载的技术问题。

【技术实现步骤摘要】
一种大图加载检测方法、装置、电子设备及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种大图加载检测方法、装置、电子设备及存储介质。

技术介绍

[0002]在金融软件开发的过程中,加载图片是一个很常规的操作,例如银行系统的广告图片加载、推广应用图片加载等等。
[0003]图片加载同时也是一个“成本”较高的行为,因为加载一张图片可能需要先后历经网络请求、I/O读写、内存占用等多个过程。目前一般是通过Coil、Glide等开源库来加载图片,完全无需关心其加载过程,而其中可能就隐藏着一个不是很合理的情况:加载的图片属于大图,这样加载展示所需的图片会造成不必要的性能浪费,同时也可能会引发OOM,因此进行在对应用性能优化时,减少大图的加载是一个比较重要的优化方向,
[0004]但是通常情况下,都是通过人工进行代码review检查当前代码中的图片加载问题,虽然能检查出来程序在初始化过程中产生的大图加载问题,但是很难检测出来程序在运行过程中,通过网络,或者用户上传等一些大图加载的问题。

技术实现思路

[0005]本专利技术的目的在于克服上述技术不足,提供一种适用于金融科技或其他相关
的大图加载检测方法、装置、电子设备及存储介质,解决现有技术中无法在程序运行过程中检测处大图加载的技术问题。
[0006]为达到上述技术目的,本专利技术采取了以下技术方案:
[0007]第一方面,本专利技术提供一种大图加载检测方法,包括如下步骤:
[0008]获取项目源代码,基于所述项目源代码获取程序的字节码文件;
[0009]基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,其中,所述字节码插桩文件用于按照预设判断方式进行大图加载判断;
[0010]基于所述更新后的字节码文件,对当前图片进行加载,以判断出当前图片是否为大图后,基于所述判断结果获取日志文件。
[0011]在一些实施例中,所述基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,包括:
[0012]判断所述字节码文件是否存在图片加载工具;
[0013]当判定所述字节码文件中存在图片加载工具时,在所述图片加载工具中插入字节码插桩文件后,对所述插入字节码插桩文件的字节码文件进行更新并打包。
[0014]在一些实施例中,所述预设判断方式具体为:
[0015]判断图片的加载时间是否超过预设时长,如果是,则判定图片为大图并获取图片信息;
[0016]当判定图片的加载时间没有超过预设时长时,判断图片的大小是否超过预设大小,如果是,则判定图片为大图并获取图片信息;
[0017]当判定图片的大小没有超过预设大小时,判断图片的像素是否超过预设像素值,如果是,则判定图片为大图并获取图片信息,如果不是,则判定所述图片不是大图。
[0018]在一些实施例中,所述当判定所述字节码文件中存在图片加载工具时,在所述图片加载工具中插入字节码插桩文件后,对所述插入字节码插桩文件的字节码文件进行更新并打包,包括:
[0019]当判定所述字节码文件中存在图片加载工具时,将所述字节码插桩文件通过预设命令引入到程序编译打包过程中;
[0020]对所述字节码插桩文件进行变形动作,使所述字节码文件根据所述字节码插桩文件的代码编写逻辑进行字节码插桩;
[0021]当插桩完成后,对所述字节码文件进行更新并打包成独立运行的文件包。
[0022]在一些实施例中,所述字节码插桩文件通过预设的开源打包工具进行字节码插桩。
[0023]在一些实施例中,所述预设时长为2秒,所述预设大小为1MB,所述预设像素值为200pd。
[0024]在一些实施例中,所述日志文件至少能够反映图片的url路径、图片的名称、图片的大小、图片的加载时间、图片的像素大小。
[0025]第二方面,本专利技术还提供一种大图加载检测装置,包括:
[0026]字节码文件获取模块,用于获取项目源代码,基于所述项目源代码获取程序的字节码文件;
[0027]插桩模块,用于基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,其中,所述字节码插桩文件用于按照预设判断方式进行大图加载判断;
[0028]检测模块,用于基于所述更新后的字节码文件,对当前图片进行加载,以判断出当前图片是否为大图后,基于所述判断结果获取日志文件。
[0029]第三方面,本专利技术还提供一种电子设备,包括:处理器和存储器;
[0030]所述存储器上存储有可被所述处理器执行的计算机程序;
[0031]所述处理器执行所述计算机程序时实现如上所述的大图加载检测方法中的步骤。
[0032]第四方面,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的大图加载检测方法中的步骤。
[0033]与现有技术相比,本专利技术提供的大图加载检测方法、装置、电子设备及存储介质,首先获取项目源代码,基于所述项目源代码获取程序的字节码文件;之后基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,其中,所述字节码插桩文件用于按照预设判断方式进行大图加载判断;最后基于所述更新后的字节码文件,对当前图片进行加载,以判断出当前图片是否为大图后,基于所述判断结果获取日志文件。通过在已经编译好的程序文件中,通过字节码插桩的方式在文件中插入插桩文件,通过该插桩文件进行大图加载的逻辑判断,从而在不修改代码源码的
情况下实现对程序中可能存在的大图加载文件检测,而且能够在程序运行阶段实现程序中可能存在的大图加载性能问题进行监控检查,智能化程度更高,方便后续对相关代码或者业务逻辑的修改,提升程序性能。
附图说明
[0034]图1是本专利技术实施例提供的大图加载检测方法的流程图;
[0035]图2是本专利技术实施例提供的大图加载检测方法中,步骤S200的流程图;
[0036]图3是本专利技术实施例提供的大图加载检测方法中,步骤S220的流程图;
[0037]图4是本专利技术实施例提供的大图加载检测装置的功能模块示意图;
[0038]图5是本专利技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
[0039]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0040]在金融软件开发的过程中,加载图片是一个很常规的操作,例如银行系统的广告图片加载、推广应用图片加载等等。目前一般是通过Coil、Glide等开源库来加载图片,完全无需关心其加载过程,而其中可能就隐藏着一个不是很合理的情况:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大图加载检测方法,其特征在于,包括如下步骤:获取项目源代码,基于所述项目源代码获取程序的字节码文件;基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,其中,所述字节码插桩文件用于按照预设判断方式进行大图加载判断;基于所述更新后的字节码文件,对当前图片进行加载,以判断出当前图片是否为大图后,基于所述判断结果获取日志文件。2.根据权利要求1所述的大图加载检测方法,其特征在于,所述基于所述字节码文件的图片加载工具,在所述图片记载工具中插入字节码插桩文件,并对所述字节码文件进行更新,包括:判断所述字节码文件是否存在图片加载工具;当判定所述字节码文件中存在图片加载工具时,在所述图片加载工具中插入字节码插桩文件后,对所述插入字节码插桩文件的字节码文件进行更新并打包。3.根据权利要求2所述的大图加载检测方法,其特征在于,所述预设判断方式具体为:判断图片的加载时间是否超过预设时长,如果是,则判定图片为大图并获取图片信息;当判定图片的加载时间没有超过预设时长时,判断图片的大小是否超过预设大小,如果是,则判定图片为大图并获取图片信息;当判定图片的大小没有超过预设大小时,判断图片的像素是否超过预设像素值,如果是,则判定图片为大图并获取图片信息,如果不是,则判定所述图片不是大图。4.根据权利要求3所述的大图加载检测方法,其特征在于,所述当判定所述字节码文件中存在图片加载工具时,在所述图片加载工具中插入字节码插桩文件后,对所述插入字节码插桩文件的字节码文件进行更新并打包,包括:当判定所述字节码文件中存在图片加载工具时,将所述字节码插桩文件通过预设命令引入到程序编译打包过程中;对所述字节...

【专利技术属性】
技术研发人员:吴艳兵
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1