CN112379945B - 用于运行应用的方法、装置、设备以及存储介质 - Google Patents

用于运行应用的方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN112379945B
CN112379945B CN202011312444.0A CN202011312444A CN112379945B CN 112379945 B CN112379945 B CN 112379945B CN 202011312444 A CN202011312444 A CN 202011312444A CN 112379945 B CN112379945 B CN 112379945B
Authority
CN
China
Prior art keywords
application
code
running
target application
search information
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.)
Active
Application number
CN202011312444.0A
Other languages
English (en)
Other versions
CN112379945A (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011312444.0A priority Critical patent/CN112379945B/zh
Publication of CN112379945A publication Critical patent/CN112379945A/zh
Application granted granted Critical
Publication of CN112379945B publication Critical patent/CN112379945B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种用于运行应用的方法、装置、设备以及存储介质,涉及计算机技术、大数据领域。具体实现方案为:获取搜索信息;基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码;基于运行代码,确定目标应用;加载目标应用对应的运行代码,对目标应用进行运行代码的预充;响应于接收到运行目标应用的指令,运行代码预充后的目标应用。本实现方式通过在确定目标应用后,在打开目标应用之前对目标应用进行对应的代码缓存预充,可以提高在打开目标应用时的应用代码缓存的命中率,从而提升目标应用的应用代码的加载速度,实现大幅提升目标应用启动运行的速度。

Description

用于运行应用的方法、装置、设备以及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及大数据领域,尤其涉及用于运行应用的方法、装置、设备以及存储介质。
背景技术
小程序是一种通过渲染层和逻辑层物理隔离的可纯离线工作的运行时生态。基于标准JS扩展的DSL语法,以及依托NA化能力加持,使得小程序拥有更为接近H5的开发效率以及无限接近NA的用户体验而广受开发者青睐。同时为了提升小程序性能,宿主App上会对小程序包进行全场景覆盖的预下载,但小程序的启动速度提高幅度不大。
发明内容
本公开提供了一种用于运行应用的方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种用于运行应用的方法,包括:获取搜索信息;基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码;基于运行代码,确定目标应用;加载目标应用对应的运行代码,对目标应用进行运行代码的预充;响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
根据本公开的另一方面,提供了一种用于运行应用的装置,包括:获取单元,被配置成获取搜索信息;下载单元,被配置成基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码;目标应用确定单元,被配置成基于运行代码,确定目标应用;代码预充单元,被配置成加载目标应用对应的运行代码,对目标应用进行运行代码的预充;运行单元,被配置成响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
根据本公开的再一方面,提供了一种用于运行应用的电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如上述用于运行应用的方法。
根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,上述计算机指令用于使计算机执行如上述用于运行应用的方法。
根据本申请的技术解决了对小程序包预下载后,小程序的启动速度提高幅度不大的问题,通过在确定目标应用后,在打开目标应用之前对目标应用进行对应的代码缓存预充,可以提高在打开目标应用时的应用代码缓存的命中率,从而提升目标应用的应用代码的加载速度,实现大幅提升目标应用启动运行的速度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的用于运行应用的方法的一个实施例的流程图;
图3是根据本申请的用于运行应用的方法的一个应用场景的示意图;
图4是根据本申请的用于运行应用的方法的另一个实施例的流程图;
图5是根据本申请的用于运行应用的装置的一个实施例的结构示意图;
图6是用来实现本申请实施例的用于运行应用的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于运行应用的方法或用于运行应用的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种小程序应用,例如视频小程序、音乐小程序、外卖小程序等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、车载电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103获取的搜索信息进行处理的后台服务器。后台服务器可以获取搜索信息;基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码;基于下载的运行代码,确定目标应用;加载目标应用对应的运行代码,对目标应用进行运行代码的预充;响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的用于处理数据的方法一般由服务器105执行。相应地,用于处理数据的装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的用于运行应用的方法的一个实施例的流程200。本实施例的用于运行应用的方法,包括以下步骤:
步骤201,获取搜索信息。
本实施例中,用于运行应用的方法的执行主体(例如图1中的服务器105)可以通过有线连接或者无线连接的方式,获取由终端设备获取的用户输入的搜索信息。具体地,搜索信息可以是用户输入软件A的搜索框中的“小视频”、“外卖”等类似的信息,用于表征用户想要获取的小程序信息等。
步骤202,基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码。
执行主体在获取搜索信息后,可以基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码。具体地,“应用”可以是小程序也可以是移动终端上的APP,其中,小程序是一种通过渲染层和逻辑层物理隔离的可纯离线工作的运行时生态。示例的,本实施例中,执行主体可以基于搜索信息,从小程序包管理服务器(PackageManagerServer,PMS)下载搜索信息对应的所有的小程序代码包(即上述提到的对应的应用的运行代码)和小程序配置信息,其中,小程序配置信息包含小程序主体名称和小程序权限配置等信息。例如,搜索信息为“小A”,则搜索到的与“小A”对应的全部应用为“应用1”、“应用2”、“应用3”、“应用4”…“应用n”,则从PMS中下载所有的“应用1”、“应用2”、“应用3”、“应用4”…“应用n”的运行代码。
步骤203,基于运行代码,确定目标应用。
执行主体在下载对应的应用的运行代码后,可以基于运行代码,确定目标应用。具体地,执行主体可以根据运行代码,确定各对应的应用的更新频度;基于更新频度和预设的更新频度阈值,确定目标应用。具体地,在运行代码中,存在<meta>标签,<meta>标签位于运行代码的头部,<meta>标签可提供有关应用的元信息(meta-information),比如<meta>标签可提供针对搜索引擎和更新频度的描述和关键词。执行主体可以基于<meta>标签得到各对应的应用的更新频度,以确定各应用被使用的活跃度。执行主体可以将针对搜索信息的应用中的更新频度最大的应用确定为目标应用,目标应用的运行代码也是预下载的,当然,执行主体也可以根据更新频度和预设的更新频度阈值,选取针对搜索信息的应用中的更新频度大于更新频度阈值的预设数量个应用作为目标应用。本申请对所选取的目标应用的个数不作具体限定。当然,执行主体也可以不确定目标应用,对搜索信息对应的所有的应用(例如,对搜索信息的搜索结果对应的所有的小程序)进行运行代码的预充。本申请进行运行代码预充的应用的类型、个数和点击量均不作具体限定。
步骤204,加载目标应用对应的运行代码,对目标应用进行运行代码的预充。
执行主体在确定目标应用后,可以加载目标应用对应的运行代码,对目标应用进行运行代码的预充。具体地,执行主体可以在加载完整的小程序预处理服务框架(swanjs)后,基于该框架加载目标应用的运行代码(app.js),并首次运行目标应用的运行代码,然后可以将目标应用的运行代码和首次运行结果进行备份保存,以实现利用加载的目标应用对应的运行代码,对目标应用进行运行代码的预充。备份,其本质是一个副本。相当于在某个时间点把目标应用的运行代码和首次运行结果都复制一份,进行缓存(备份文件,一般是.bak)。该文件不是一个数据库,不能直接应用SQL,必须先通过还原的方式还原到一个数据库之后才能访问备份里面的数据。当然,执行主体也可以不确定目标应用,对搜索信息对应的所有的应用(例如,对搜索信息的搜索结果对应的所有的小程序)进行运行代码的预充。本申请进行运行代码预充的应用的类型、个数和点击量均不作具体限定。
步骤205,响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
执行主体在接收到运行目标应用的指令后,可以响应于接收到目标应用的指令,运行代码预充后的目标应用。
继续参考图3,其示出了根据本申请的用于运行应用的方法的一个应用场景的示意图。在图3的应用场景中,服务器304通过网络303获取移动终端302获取的搜索信息301。服务器304基于搜索信息301,下载对应的应用的运行代码305。服务器304基于运行代码305,确定目标应用306。服务器304加载目标应用306对应的运行代码307,对目标应用306进行运行代码307的预充。服务器304响应于接收到运行目标应用的指令308,运行代码预充后的目标应用309。
本实施例通过在确定目标应用后,在打开目标应用之前对目标应用进行对应的代码缓存预充,可以提高在打开目标应用时的应用代码缓存的命中率,从而提升目标应用的应用代码的加载速度,实现大幅提升目标应用启动运行的速度。
继续参考图4,其示出了根据本申请的用于运行应用的方法的另一个实施例的流程400。如图4所示,本实施例的用于运行应用的方法,可以包括以下步骤:
步骤401,获取搜索信息。
步骤402,基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码。
步骤401~步骤402的原理与步骤201~步骤202的原理类似,此处不再赘述。
具体地,步骤402可以通过步骤4021~步骤4023来实现:
步骤4021,根据搜索信息,得到搜索结果。
本实施例中,执行主体在获取搜索信息后,可以根据搜索信息,得到搜索结果。具体地,搜索信息可以是用户输入移动终端上的搜索框中的信息,例如,可以是“视频”、“音乐”、“壁纸”等信息。搜索结果,可以是执行主体基于搜索信息和大数据,匹配的对应搜索信息的多个小程序,例如各种类型的“视频小程序”、各种类型的“音乐小程序”、各种类型的“壁纸小程序”等。
步骤4022,根据搜索结果和预设应用个数阈值,确定针对搜索信息的应用。
执行主体在得到搜索结果后,可以根据搜索结果和预设应用个数阈值,确定针对搜索信息的应用。具体地,“应用”可以包括小程序和APP。执行主体可以根据搜索结果推送一个或多个应用,然后执行主体可以根据预设的应用个数阈值,选取推送列表中排名靠前的预设应用个数的应用,并将选取的这些应用确定为搜索结果对应的应用。示例的,搜索结果的列表可以为“A视频小程序”、“B视频小程序”、“C视频小程序”…“X视频小程序”。预设的应用个数阈值可以是3个。则确定的对应搜索结果的应用可以是得到的搜索结果的列表中的前3个小程序:“A视频小程序”、“B视频小程序”、“C视频小程序”。本申请对预设应用个数阈值不作具体限定。
步骤4023,下载针对搜索信息的应用所对应的待预充的运行代码。
执行主体在确定搜索结果对应的应用后,可以从小程序包管理服务器中下载针对搜索信息的应用的待预充的运行代码。例如,下载“A视频小程序”、“B视频小程序”、“C视频小程序”的运行代码。
本实施例通过根据搜索信息得到的搜索结果和预设的应用个数阈值,确定对应搜索信息的应用,并下载对应的应用的运行代码,可以充分利用当前全渠道覆盖预下载的优势,在用户打开目标应用之前,进行目标应用的运行代码的预下载,并且可以在进行目标应用的代码预充时快速加载目标应用的运行代码,为代码预充奠定基础,从而可以提升目标应用的启动速度。并且,通过预下载预设应用个数的应用的运行代码,可以快速、简洁地实现运行代码的预下载,减少内存资源占用,
步骤403,基于运行代码,确定目标应用。
步骤403的原理与步骤203的原理类似,此处不再赘述。
具体地,步骤403可以通过步骤4031来实现:
本实施例中运行代码中包括计数标签。
步骤4031,基于计数标签和预设计数阈值,确定目标应用。
执行主体在下载运行代码后,可以根据代码中的<meta>标签中指示计数的内容,确定对应的应用的页面浏览量或点击量(Page View,PV)。用户每一次对应用的访问均被记录1个PV。用户对同一应用的页面的多次访问,访问量累计。PV越高,应用的代码缓存的命中率越高。命中率越高,应用(可以是小程序)启动速度越快。执行主体可以根据计数标签,确定对应的应用的页面浏览量或点击量(Page View,PV);根据PV和预设计数阈值,确定目标应用。例如,执行主体可以将PV大于预设计数阈值的所有应用或者是将PV大于预设计数阈值的前TOP-N数量的应用确定为目标应用。
本实施例基于代码中的计数标签可以确定应用的页面点击量,从而可以根据应用的页面点击量来确定是否要将其确定为目标应用,从而实现使用最小的存储获取最大的收益。
步骤404,加载目标应用对应的运行代码,对目标应用进行运行代码的预充。
步骤404的原理与步骤204的原理类似,此处不再赘述。
具体地,步骤404可以通过步骤4041~步骤4044来实现:
步骤4041,启动虚拟机环境。
执行主体在确定目标应用后,可以启动虚拟机环境。具体地,虚拟机是一个类似程序一样的软件,相当于是在系统中启动系统,虚拟机可以是预先设置好的。启动的系统可以随时还原。启动虚拟机以便于在虚拟机环境中进行代码缓存的预充。
步骤4042,在虚拟机环境中装载应用预处理服务框架代码。
本实施例中的预处理服务框架代码为swanjs框架源码中可用于代码预装载服务的最精简集合。由于开发者代码app.js加载过程中依赖于swanjs中的一些必要元素,而加载swanjs框架源码对于预处理操作过于沉重,因此,此处仅需要加载精简版本的预处理服务框架代码即可。具体地,预处理服务框架代码通过对现有小程序框架前端swanjs代码精简得到。
步骤4043,基于应用预处理服务框架代码,加载目标应用对应的运行代码并首次运行目标应用,得到首次运行结果。
执行主体在虚拟机环境中装载应用预处理服务框架代码后,可以基于应用预处理服务框架代码,采取队列模式,依次分别自动加载各个目标应用对应的运行代码并首次运行各个目标应用,得到各个目标应用的首次运行结果。具体地,执行主体可以调用预处理服务框架代码中的一些必要元素以加载预下载过的目标应用对应的运行代码,并自动基于目标应用对应的运行代码首次运行目标应用,得到首次运行的结果。首次运行的结果,可以是目标应用首次运行后得到的可以应用SQL语句的数据库,例如是一些打开的网页界面,一些链接、一些图片、一些视频等等。
步骤4044,获取目标应用对应的运行代码和首次运行结果的快照,并将快照进行缓存。
执行主体在得到各个目标应用的首次运行结果后,可以获取各个目标应用对应的运行代码和首次运行结果的快照,并将快照进行缓存。具体地,快照,其本质类似于数据库的照片,也就是在某个特定时间点(创建快照的时间点,例如是在目标应用的首次运行结束时)拍摄目标应用对应的运行代码和首次运行结果的数据库的照片,以便于在用户发出运行任意一个目标应用的指令时,即时调用该目标应用对应的快照,极大程度地缩短加载该目标应用的运行代码的时间,极大地提高了目标应用的启动速度。快照得到的这个照片是一个新的数据库,可以应用SQL语句。快照数据库里的数据是不变的。创建快照后,系统会对原数据库的所有数据页做标识,如果数据页在创建快照后被修改,会复制一个数据页出来,没有修改的数据页则不会有快照(原数据库和快照数据库共用该数据页)。执行主体可以将快照缓存至本地数据库中或上传至云端,本申请对快照的缓存位置不作具体限定。
本实施例通过获取目标应用,并将快照进行缓存,可以实现在用户发出运行目标应用的指令时,即时调用该快照,极大程度地缩短加载目标应用的运行代码的时间,极大地提高了目标应用的启动速度
步骤405,在对快照进行缓存之后的预设时间段退出对目标应用的代码预充。
本实施例中,运行代码的预充服务的每次启动/唤醒操作,均需要在下载了搜索信息对应的应用的运行代码后进行。并且,在每次生成目标应用对应的运行代码和首次运行结果的快照后,预充服务可以不立即退出,当次仅释放必要的资源后,该预充服务处于后台闲置状态,此时可以停留预设时间段(例如,停留5分钟)后再退出该预充服务,以保证对其他目标应用进行运行代码的预充服务可以从后台闲置状态立即激活/唤醒,提升代码预充效率。
步骤406,响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
步骤406的原理与步骤205的原理类似,此处不再赘述。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于运行应用的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的用于运行应用的装置500包括:获取单元501、下载单元502、目标应用确定单元503、代码预充单元504和运行单元505。
获取单元501,被配置成获取搜索信息。
下载单元502,被配置成基于搜索信息,下载针对搜索信息的应用所对应的待预充的运行代码。
目标应用确定单元503,被配置成基于运行代码,确定目标应用。
代码预充单元504,被配置成加载目标应用对应的运行代码,对目标应用进行运行代码的预充。
运行单元505,被配置成响应于接收到运行目标应用的指令,运行代码预充后的目标应用。
在本实施例的一些可选的实现方式中,运行代码中包括计数标签;以及目标应用确定单元503进一步被配置成:基于计数标签和预设计数阈值,确定目标应用。
在本实施例的一些可选的实现方式中,代码预充单元504进一步被配置成:启动虚拟机环境;在虚拟机环境中装载应用预处理服务框架代码;基于应用预处理服务框架代码,加载目标应用对应的运行代码并首次运行目标应用,得到首次运行结果;获取目标应用对应的运行代码和首次运行结果的快照,并将快照进行缓存。
在本实施例的一些可选的实现方式中,用于运行应用的装置还包括图5中未示出的预设关闭单元,被配置成在对快照进行缓存之后的预设时间段退出对目标应用的代码预充。
在本实施例的一些可选的实现方式中,下载单元502进一步被配置成:根据搜索信息,得到搜索结果;根据搜索结果和预设应用个数阈值,确定针对搜索信息的应用;下载针对搜索信息的应用所对应的待预充的运行代码。
应当理解,用于运行应用的装置500中记载的单元501至单元505分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于运行应用的方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。
根据本申请的实施例,本申请还提供了一种用于运行应用的电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的用于运行应用的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线605互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线605与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于运行应用的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于运行应用的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及单元,如本申请实施例中的用于运行应用的方法对应的程序指令/单元(例如,附图5所示的获取单元501、下载单元502、目标应用确定单元503、代码预充单元504和运行单元505)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于运行应用的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于运行应用的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至用于运行应用的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于运行应用的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线605或者其他方式连接,图6中以通过总线605连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与用于运行应用的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,通过在确定目标应用后,在打开目标应用之前对目标应用进行对应的代码缓存预充,可以提高在打开目标应用时的应用代码缓存的命中率,从而提升目标应用的应用代码的加载速度,实现大幅提升目标应用启动运行的速度。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (10)

1.一种用于运行应用的方法,包括:
获取搜索信息;
基于所述搜索信息,下载针对所述搜索信息的应用所对应的待预充的运行代码;
基于所述运行代码,确定目标应用;
启动虚拟机环境;
在所述虚拟机环境中装载应用预处理服务框架代码;
基于所述应用预处理服务框架代码,加载目标应用对应的运行代码并首次运行所述目标应用,得到首次运行结果;
获取所述目标应用对应的运行代码和所述首次运行结果的快照,并将所述快照进行缓存;
响应于接收到运行所述目标应用的指令,运行代码预充后的所述目标应用。
2.根据权利要求1所述的方法,其中,所述运行代码中包括计数标签;以及
所述基于所述运行代码,确定目标应用,包括:
基于所述计数标签和预设计数阈值,确定目标应用。
3.根据权利要求1所述的方法,其中,所述方法还包括:
在对所述快照进行缓存之后的预设时间段退出对所述目标应用的代码预充。
4.根据权利要求1~3中任一项所述的方法,其中,所述基于所述搜索信息,下载针对所述搜索信息的应用所对应的待预充的运行代码,包括:
根据所述搜索信息,得到搜索结果;
根据所述搜索结果和预设应用个数阈值,确定针对所述搜索信息的应用;
下载针对所述搜索信息的应用所对应的待预充的运行代码。
5.一种用于运行应用的装置,包括:
获取单元,被配置成获取搜索信息;
下载单元,被配置成基于所述搜索信息,下载针对所述搜索信息的应用所对应的待预充的运行代码;
目标应用确定单元,被配置成基于所述运行代码,确定目标应用;
代码预充单元,被配置成启动虚拟机环境;在所述虚拟机环境中装载应用预处理服务框架代码;基于所述应用预处理服务框架代码,加载目标应用对应的运行代码并首次运行所述目标应用,得到首次运行结果;获取所述目标应用对应的运行代码和所述首次运行结果的快照,并将所述快照进行缓存;
运行单元,被配置成响应于接收到运行所述目标应用的指令,运行代码预充后的所述目标应用。
6.根据权利要求5所述的装置,其中,所述运行代码中包括计数标签;以及
所述目标应用确定单元进一步被配置成:
基于所述计数标签和预设计数阈值,确定目标应用。
7.根据权利要求5所述的装置,其中,所述装置还包括:
预设关闭单元,被配置成在对所述快照进行缓存之后的预设时间段退出对所述目标应用的代码预充。
8.根据权利要求5~7中任一项所述的装置,其中,所述下载单元进一步被配置成:
根据所述搜索信息,得到搜索结果;
根据所述搜索结果和预设应用个数阈值,确定针对所述搜索信息的应用;
下载针对所述搜索信息的应用所对应的待预充的运行代码。
9. 一种用于运行应用的电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的方法。
CN202011312444.0A 2020-11-20 2020-11-20 用于运行应用的方法、装置、设备以及存储介质 Active CN112379945B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011312444.0A CN112379945B (zh) 2020-11-20 2020-11-20 用于运行应用的方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011312444.0A CN112379945B (zh) 2020-11-20 2020-11-20 用于运行应用的方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN112379945A CN112379945A (zh) 2021-02-19
CN112379945B true CN112379945B (zh) 2024-04-19

Family

ID=74584600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011312444.0A Active CN112379945B (zh) 2020-11-20 2020-11-20 用于运行应用的方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN112379945B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885967B (zh) * 2021-10-22 2024-02-13 北京字跳网络技术有限公司 一种小程序的启动方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106710A1 (en) * 2004-05-04 2005-11-10 International Business Machines Corporation Methods, systems, and computer program products for client side prefetching and caching of portlets
CN108536486A (zh) * 2018-04-08 2018-09-14 苏州犀牛网络科技有限公司 Rn小程序的加载方法及装置
CN110809017A (zh) * 2019-08-16 2020-02-18 云南电网有限责任公司玉溪供电局 一种基于云平台和微服务构架的数据分析应用平台系统
CN111475259A (zh) * 2020-04-02 2020-07-31 北京百度网讯科技有限公司 小程序加载方法、装置及电子设备
CN111586126A (zh) * 2020-04-28 2020-08-25 百度在线网络技术(北京)有限公司 小程序预下载方法、装置、设备及存储介质
CN111681640A (zh) * 2020-05-29 2020-09-18 北京百度网讯科技有限公司 播报文本的确定方法、装置、设备和介质
CN111724785A (zh) * 2020-06-29 2020-09-29 百度在线网络技术(北京)有限公司 小程序的语音控制方法、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10673789B2 (en) * 2018-09-28 2020-06-02 International Business Machines Corporation Bot-invocable software development kits to access legacy systems

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106710A1 (en) * 2004-05-04 2005-11-10 International Business Machines Corporation Methods, systems, and computer program products for client side prefetching and caching of portlets
CN108536486A (zh) * 2018-04-08 2018-09-14 苏州犀牛网络科技有限公司 Rn小程序的加载方法及装置
CN110809017A (zh) * 2019-08-16 2020-02-18 云南电网有限责任公司玉溪供电局 一种基于云平台和微服务构架的数据分析应用平台系统
CN111475259A (zh) * 2020-04-02 2020-07-31 北京百度网讯科技有限公司 小程序加载方法、装置及电子设备
CN111586126A (zh) * 2020-04-28 2020-08-25 百度在线网络技术(北京)有限公司 小程序预下载方法、装置、设备及存储介质
CN111681640A (zh) * 2020-05-29 2020-09-18 北京百度网讯科技有限公司 播报文本的确定方法、装置、设备和介质
CN111724785A (zh) * 2020-06-29 2020-09-29 百度在线网络技术(北京)有限公司 小程序的语音控制方法、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于代码压缩方法的嵌入式编译优化研究;朱立文;郭曦;;鄂州大学学报;20080315(第02期);全文 *

Also Published As

Publication number Publication date
CN112379945A (zh) 2021-02-19

Similar Documents

Publication Publication Date Title
KR102097300B1 (ko) 클라우드-기반 파일 시스템 내에서의 파일 핸들링
US10048960B2 (en) Identifying source code used to build executable files
JP7149365B2 (ja) 検索方法、検索装置、電子機器及び記憶媒体
US10684838B2 (en) Dynamic application deployment
US11663037B2 (en) Service information processing method, apparatus, device and computer storage medium
CN110704162B (zh) 物理机共享容器镜像的方法、装置、设备及存储介质
JP7090774B2 (ja) アプリケーションプログラムの起動方法、装置、機器、及び記憶媒体
CN111881387B (zh) 用于小程序的数据处理方法、装置、设备和介质
CN112000394A (zh) 用于访问小程序的方法、装置、设备以及存储介质
US9798765B2 (en) Updating object attributes in a lock-coupled namespace traversal
US20210117169A1 (en) Code execution method, device, and rendering apparatus
CN112379945B (zh) 用于运行应用的方法、装置、设备以及存储介质
US20190220294A1 (en) Using lightweight jit compilation for short-lived jvms on parallel distributing computing framework
CN113158098B (zh) 页面生成方法、装置、设备和介质
CN111796851A (zh) 客户端基础库更新方法、装置、电子设备和存储介质
CN110574033B (zh) 减少多媒体内容传递的远程过程调用
US11194724B2 (en) Process data caching through iterative feedback
US10963307B2 (en) Client-side memory management in component-driven console applications
CN112306413A (zh) 用于访问内存的方法、装置、设备以及存储介质
CN112016020B (zh) 信息的处理方法和装置
EP2896185B1 (en) Reducing network usage of computing device
CN111611582A (zh) 用于识别页面劫持行为的方法和装置
CN115269497A (zh) 用于配置网络文件系统的方法和装置
CN111651218A (zh) 一种小程序保留方法、装置、电子设备及存储介质
CN118069589A (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