[发明专利]生成和高速缓存软件代码有效
| 申请号: | 201380009208.3 | 申请日: | 2013-02-04 |
| 公开(公告)号: | CN104137057B | 公开(公告)日: | 2017-10-24 |
| 发明(设计)人: | J·费雪;M·W·杰克逊;Y·克力克;S·E·卢科;J·D·麦克盖塔;J·Z·米亚多维茨;S·J·斯坦纳 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F9/30;G06F9/44 |
| 代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 罗婷婷 |
| 地址: | 美国华*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 生成 高速缓存 软件 代码 | ||
1.一种至少部分地由计算机实现的用于生成和高速缓存软件代码的方法,所述方法包括:
预先取得要安装在目标设备上的包括软件的源代码的包,其中所述包是网站的页面的脚本文件,不必遭遇对所述脚本文件的显式引用;
将所述包安装在所述目标设备上;以及
在执行所述软件之前执行第一组动作以初始地编译所述源代码,除非在开始或完成所述第一组动作之前接收到要执行所述软件的请求,所述第一组动作包括:
将所述源代码编译成第二代码,以及
将所述第二代码持久保存在非易失性存储器中。
2.如权利要求1所述的方法,其特征在于,还包括在开始或完成所述第一组动作之前接收到要执行所述软件的请求的情况下,在完成所述第一组动作之前执行第二组动作,所述第二组动作包括:
在所述目标设备上执行所述源代码或从其导出的可执行代码。
3.如权利要求1所述的方法,其特征在于,所述第一组动作还包括对非易失性存储器中的所述第二代码进行存储器映射以供执行两个或更多包的进程共享所述第二代码。
4.如权利要求1所述的方法,其特征在于,还包括将指示所述源代码要被编译成供所述目标设备的第二代码的指示符置于数据结构中,并且在所述数据结构中找到所述指示符,且其中将所述源代码编译成所述第二代码是响应于在所述数据结构中找到所述指示符来执行的。
5.如权利要求1所述的方法,其特征在于,还包括接收再次生成触发事件的指示并且作为响应潜在地用不同源代码和从所述不同源代码编译的不同第二代码来再次执行所述第一组动作。
6.一种用于生成和高速缓存软件代码的方法,包括:
接收要执行包括源代码的软件的请求,其中所述源代码是网站的页面的脚本文件,不必遭遇对所述脚本文件的显式引用;
响应于所述请求,确定第二代码是否已经从所述源代码生成和存储在非易失性存储中;
如果在接收到所述请求之前已经生成了所述第二代码,则执行第一组动作,包括:
获取所述第二代码,以及
执行所述第二代码或从其导出的代码;以及
如果在接收到所述请求之前尚未生成所述第二代码,则执行第二组动作,包括:
获取所述源代码,
从所述源代码生成所述第二代码,
执行所述第二代码或从其导出的代码,以及
如果在接收到所述请求之前尚未生成所述第二代码,则执行第三组动作,包括:
将所述第二代码存储在所述非易失性存储中以供在所述软件的后续执行中使用。
7.如权利要求6所述的方法,其特征在于,执行所述第三组动作还包括:
再次获取所述源代码;以及
从所述源代码再次生成所述第二代码。
8.如权利要求6所述的方法,其特征在于,还包括检查所述第二代码在被生成之后是否被修改并且如果是则执行动作,所述动作包括:
再次获取所述源代码;
从所述源代码再次生成所述第二代码;以及
将所述第二代码存储在所述非易失性存储中以供在所述软件的后续执行中使用。
9.一种在计算环境中的用于生成和高速缓存软件代码的系统,包括:
存储,用于存储包的数据,所述包包括软件的源代码,其中所述源代码是网站的页面的脚本文件,不必遭遇对所述脚本文件的显式引用;
安装器,用于将所述包安装在所述存储上,所述安装器还用于更新数据结构以指示所述源代码要被编译成第二代码;
代码生成器,用于检查所述数据结构以标识所述源代码并且基于所述源代码要被编译成所述第二代码的数据结构中的指示将所述源代码编译成所述第二代码;
高速缓存管理器,用于将所述第二代码持久存储在所述存储上并且提供对所述存储上的所述第二代码的访问;
执行管理器,用于接收要执行所述软件的请求并且确定所述代码生成器是否已经将所述源代码编译成所述第二代码并且如果是则执行动作,所述动作包括:
获取所述第二代码,以及
执行所述第二代码或从其导出的代码;以及
如果否,则执行动作,所述动作包括:
获取所述源代码,
致使所述源代码被编译成所述第二代码,以及
执行所述源代码或从其导出的代码。
10.如权利要求9所述的系统,其特征在于,所述执行管理器还用于在接收到所述请求之前所述代码生成器尚未将所述源代码编译成所述第二代码的情况下致使所述第二代码被生成而没有延迟。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380009208.3/1.html,转载请声明来源钻瓜专利网。





