一种Java虚拟机中类库的多线程预加载方法技术

技术编号:10040258 阅读:316 留言:0更新日期:2014-05-14 10:51
本发明专利技术提供了一种Java虚拟机中类库的多线程预加载方法。首先连接类库,生成预加载列表,预加载列表中包含虚拟机运行时所需要预先加载的类;然后,根据线程个数,将预加载列表中的类平均分配到各个线程,同时启动各线程,将列表中的类加载到内存中,并对类中的静态变量进行初始化;最后,将预加载的类存入共享内存资源。本发明专利技术方法筛选记录了Java程序运行时需要多次加载或者必须常驻内存的类,使得预加载类库随着应用程序和用户使用习惯的改变而自动调整,有效提高Java程序的运行效率;同时,通过多线程同步加载预加载列表中的类,有效提高Java虚拟机启动阶段类库本身的加载速度。

【技术实现步骤摘要】

本专利技术涉及Java虚拟机中的类加载技术,尤其是手机系统Java虚拟机中类的预加载方法。
技术介绍
类加载器在虚拟机中主要负责对类文件的查询和加载。类加载器通过对二进制文件的解析来加载运行过程中该类的数据结构,然后对其进行调用,同时装载并连接该类中所有超类和超类之间的接口。当虚拟机需要装载一个类时,类加载器就会查找该类所对应的字节码文件,然后对这个字节码文件进行加载,提取其中所需的数据信息存储到内存中。运行在手机上的Java虚拟机,例如Android系统下的Dalvik虚拟机在设备开机时就进行预加载,预先将所有基础类加载到内存中,以此来提高Java程序的执行效率。但类加载器所预先加载的基础类资源量很大,很可能会导致设备开机时预加载类的过程时间过长。
技术实现思路
本专利技术针对目前类加载器预加载的基础资源量大,开机过程长的问题,提出了一种Java虚拟机中类库的多线程预加载方法。本专利技术方法以多线程并发的方式来完成虚拟机预加载过程,尤其是针对在手机中使用的多核处理器,采用了本文档来自技高网...

【技术保护点】
一种Java虚拟机中类库的多线程预加载方法,其特征在于,包括如下步骤:步骤1:连接类库,生成预加载列表;所述的预加载列表中包含虚拟机运行时所需要预先加载的类;当过程虚拟机初始化完成后,开始查询类库中的每个类,若类满足如下任一条件时,将类加入预加载列表,条件如下:(1)至少被两个应用所加载,(2)所需要加载的时间大于额定最小值,(3)常驻内存区域;步骤2:根据线程个数,将预加载列表中的类平均分配到各个线程,然后同时启动各个线程,将列表中的类加载到内存中,并对类中的静态变量进行初始化;步骤3:将预加载的类存入共享内存资源。

【技术特征摘要】
1.一种Java虚拟机中类库的多线程预加载方法,其特征在于,包括如下步骤:
步骤1:连接类库,生成预加载列表;所述的预加载列表中包含虚拟机运行时所需要预
先加载的类;当过程虚拟机初始化完成后,开始查询类库中的每个类,若类满足如下任一条
件时,将类加入预加载列表,条件如下:(1)至少被两个应用所加载,(2)所需要加载的时
间大于额定最小值,(3)常驻内存区域;
步骤2:根据线程个数,将预加载列表中的类平均分配到各个线程,然后同时启动各个
线程,将列...

【专利技术属性】
技术研发人员:赵胜男史晓华范礼阳杨海燕
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1