首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到10条相似文献,搜索用时 31 毫秒
1.
目前,主流的JavaScript执行引擎为了提高效率,引入优化编译执行模式,对频繁运行的热点函数进行即时优化编译。优化编译执行模式的引入,给通过动态插桩实现JavaScript程序的动态污点分析(dynamic taint analysis,DTA)带来了新的挑战。针对这一问题,该文针对HTML5混合型安卓应用,通过修改其所使用的V8JavaScript引擎,基于动态插桩实现了一种优化编译执行模式下的动态污点分析方法。该方法使用污染包裹对象的方式对污点标签进行存储,在优化编译执行模式下的Hydrogen中间代码层面进行插桩操作。实验结果表明:该方法能够有效地在优化编译执行模式下进行污点跟踪,且性能开销也在可以接受的范围内。  相似文献   

2.
数据竞争是典型的多线程程序并发缺陷。由于多线程程序中存在不确定性的交织,数据竞争很难被检测出来。该文以多线程数据竞争的5个相关属性作为特征,构建了多线程程序数据竞争随机森林指令级检测模型。首先基于happens-before关系与lockset算法指令级检测数据竞争,同时用汇编源码信息来剔除隐形同步对,然后利用happens-before关系与lockset算法的分析结果训练多线程程序数据竞争随机森林检测模型。在Pin上实现了多线程程序数据竞争检测工具AIRaceTest。利用GitHub中多线程程序的插桩结果作为样本集来训练随机森林模型,模型精度可达92.1%。对Google data-race-test、 Parsec基准程序3.1中的经典多线程程序的检测结果表明:AIRaceTest与Eraser、 Djit+以及Thread Sanitizer这3种目前常用的数据竞争检测工具相比,数据竞争的误报和漏报分别降低了约10.6%和12.3%,在线程数较多的情况下,时间和内存开销分别降低了41.8%和22.4%。  相似文献   

3.
内存安全问题已成为影响C/C++程序正确性和可靠性的主要因素。一些现有的静态代码检测工具无法识别全局变量+跨函数内存管理的内存泄露和未定义越界访问这两种缺陷,且其他动态代码检测工具,因需要在运行时进行插桩等操作,会增加额外的开销导致检测效率慢。为解决这些问题,采用LLVM 15提出一种基于中间语言数据依赖关系的内存安全性检测方法,该方法通过获取并分析LLVM中间语言中指令之间的数据依赖,从而进行判断得出结果。在软件保障参考数据集SARD上的相关测试用例集验证了该方法的有效性,相比现有方法,该方法可以检测这两种内存安全性缺陷。  相似文献   

4.
利用代码插装完成实时任务对自身剩余最长执行时间的运行时自我预估,以满足实时动态调度领域的相关需要.该方法以全面的、规范的相关性分析为基础,构建形式化模型,简洁一致地刻画程序的控制流和相关性;提出了一种高效的预估点代码生成算法;并给出了权衡预估精度和运行时开销的若干优化实现技术.  相似文献   

5.
为检测Android远程控制类恶意软件,该文通过对实际的该类软件进行分析,提出一种基于控制依赖分析的动态污点检测方法。动态污点分析技术是一种检测恶意软件的主流技术。该文对传统的动态污点分析进行扩展以检测Android远程控制类恶意软件。首先采用静态分析确定条件转移指令的控制范围;再使用静态插桩在目标应用中添加分析控制依赖的功能。插桩后的应用可在运行时检查敏感操作是否控制依赖于污染数据,进而对远程控制类恶意软件进行有效的分析和检测。该文实现了一个原型检测系统。实验结果表明:应用此方法可以有效地检测出实际的Android远程控制类恶意应用。  相似文献   

6.
即时编译器辅助垃圾收集中的对象生命期分析研究   总被引:1,自引:0,他引:1  
提出一种对象生命期分析算法,利用即时编译器分析应用程序并在其中安插显式释放对象等指令,通过辅助垃圾收集器改进对象的回收与分配来减轻垃圾收集器自动回收的负担.该算法结合了活跃变量分析和指针逃逸分析,对Java程序的每个方法仅分析一次,而且是过程间的,对域、上下文是敏感的,能够分析识别应用程序中的非全局对象及其死亡位置.实验结果表明:算法的执行时间占总编译时间的3.6%~5.3%;相比一般的Salagnac等指针逃逸分析,能识别出更多的对象生命期信息,而且对象死亡位置能精确到Java方法控制流图中的基本块;在即时编译器辅助的垃圾收集优化中能够显式地回收较多的内存空间.  相似文献   

7.
Java虚拟机在运行过程中使用即时编译器编译Java程序的热点方法,然后直接执行热点方法的本地代码.锁cache机制允许Java虚拟机将编译方法的本地代码锁在cache中,以提高编译执行时的指令cache命中率.通过分析Java虚拟机中编译方法的调用规律,得到编译方法的活跃时间段、平均大小和内存分布情况.基于编译方法的调用规律,给出Java虚拟机中的动态锁cache优化方法.在Java热点方法的活跃期将其本地代码段锁在cache中,以减少cache失效.最后,在龙芯3A的HotSpot虚拟机上实现了动态锁cache优化方法.实验结果表明,Java虚拟机中的动态锁cache优化方法能够使SPECjvm2008运行时的cache失效次数平均降低8.5%,性能平均提升4%.  相似文献   

8.
协同通信系统中基于EM算法的半盲信道估计与迭代检测   总被引:1,自引:0,他引:1  
研究协同通信系统的信道估计和符号检测技术,提出一种基于EM(Expectation Maximum)算法的半盲信道估计和迭代检测接收方案.它有利于减少协同通信系统的额外系统开销,并能有效提高协同通信的信道估计精度和系统误码性能.  相似文献   

9.
针对手工优化GPU(Graphic Processing Unit)显存级数据复用过程复杂和编译时优化数据复用开销过大的问题,提出了一种基于动态生成树在运行时进行数据复用的优化方法,可为程序员提供一种透明且高效简单的优化方式.该方法将已经执行的GPU计算任务的数据访问抽象为生成树的叶子节点,利用动态生成树管理GPU数据访问信息,实现了运行时GPU显存级数据的复用优化,并通过运行时对生成树的搜索和维护,动态地发掘和优化GPU显存级数据复用,因此,在编程时不需要进行复杂且困难的数据复用分析,直接调用文中提出的运行时库就能有效减少程序执行过程中CPU内存和GPU显存之间的冗余数据传输次数,从而提升应用的运行性能.实验结果表明,使用文中提出的优化方法可有效消除未进行数据复用优化的CPU-GPU应用程序中的冗余数据传输,最大加速比达原始执行的3~10倍,额外开销不到优化后程序总执行时间的5%.  相似文献   

10.
设计并实现了一种基于发送者表与接收者表的可迁移动态负载均衡算法.该算法依据混合式动态任务调度策略,由实时监测系统下各结点的负载信息,借助检查点保存的状态参数实现系统任务的动态迁移.理论证明它能有效降低调度过程中的额外开销,保证负载信息的及时和准确,避免迁移中的颠簸现象,有效改善动态任务的调度和成功率,提高系统的并行运行性能.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号