首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 156 毫秒
1.
王雷  周晶  金茂忠 《软件学报》2007,18(10):2393-2402
动态编译技术是非常有效的一项优化技术,但是,当前的信息采集与持续监控技术面临运行开销过大、信息精度不够以及代码过渡膨胀等问题.以Intel ORP(open runtime platform)作为基础平台,设计了基于在线反馈与持续监控的动态编译系统;根据当前信息采集技术存在的一些问题改进了代码插装机制;实现了对虚方法接收者对象的类型持续监控;编译系统根据在线采集和持续监控所获得的信息指导内联优化;针对持续监控过程中产生大量无用代码的问题,提出了已编译代码动态卸载方法.SpecJVM98和Java Grande Forum Benchmark等测试基准的运行结果表明,被测程序的平均性能得到了提高.同时,代码动态卸载算法也有效地减轻了系统的运行时负载.  相似文献   

2.
提出了一种基于监控日志挖掘的移动应用用户访问模型自动构造方法,该方法包括监控代码注入和界面访问模型构造两部分。首先,提出了一种监控代码自动注入方法,即通过对移动应用代码的静态分析,自动地在相应位置插入监控代码以支持在运行时动态地监控用户的访问行为。其次,提出了一种基于状态机的移动应用用户访问模型构造方法。访问模型中状态机的节点和节点间跳转上的附加属性描述了UI界面之间的跳转行为和界面内控件的使用情况。对移动应用进行的实验表明,这种基于监控日志挖掘的移动应用用户访问模型自动构造方法能够成功地自动注入移动应用的监控代码,并能够有效获得移动应用用户界面访问行为。  相似文献   

3.
从社交到电商、旅游、医疗、教育、餐饮和出行,移动应用逐渐成为人们日常生活的一部分。移动应用开发商之间的竞争越来越激烈,移动应用想要提升用户体验和增加用户数,从人们真实使用的手机上采集性能数据、崩溃日志至关重要。针对通过修改源代码埋桩方式采集移动应用性能数据有诸多缺陷,提出使用面向切面编程对Android源代码进行预编译处理,能够在不需要手工修改代码的前提下自动插入性能数据采集探针代码。该方法已经在多个项目中实际使用,使用该方法处理过的Android应用能够远程上报符合要求的应用性能和用户使用习惯数据。证明该方法在实际使用中具有可行性,为Android应用性能数据采集提供了新的思路。  相似文献   

4.
程克非  张聪  汪林林  张勤 《计算机应用》2005,25(10):2431-2433
引入了基于CPU硬件性能计数器的性能数据采集和分析方法,从软件运行时刻的细粒度参数入手分析软件运行时刻的性能表现,从而更为准确地反映系统实际的动态运行状态。实验证明,这种方法对于需要详细掌握系统动态运行状态的应用能够提供非常有效的分析数据,同时也在一定程度上对编译器的性能优化给出了相关参考数据。  相似文献   

5.
动态二进制翻译技术可以使编译好的二进制代码无缝运行于其他架构下,目前得到越来越广泛的应用.由于在动态翻译执行的过程中缺少程序的原始语义信息而只能采用保守的策略来保证程序的正确性,从而制约到动态二进制翻译的性能.为了解决这种不足,本文提出一种基于静态编译阶段产生的对性能有影响的元数据进行动态翻译中的寄存器化优化算法,进而来提高动态翻译器的整体性能.实验数据表明优化方法对于SPECfp2000和SPECint2000测试集分别获得了15.03%和1.21%的性能提升,其中的一些测试包的加速比甚至达到了37.09%.  相似文献   

6.
系统平台、编译器以及编译选项的差异,都可能会导致程序的源代码和编译得到的可执行代码之间存在语义差异,仅对源代码进行分析可能会遗漏隐藏在可执行代码里的漏洞。即使在源代码分析中验证了所需要的安全性质,也无法保证不违反可执行代码中的安全性质。本文基于一个二进制动态插装框架,设计并实现了一种对程序执行路径进行追踪的原型系统。实验证明,本系统在准确追踪执行路径的同时,能够过滤掉90%~99%的次要指令,极大提高了分析效率。最后,本文对其他的技术方案、现有原型系统的不足以及未来的工作进行了讨论。  相似文献   

7.
嵌入式软件测试中,代码覆盖率测试和内存检测通过给程序源代码插桩,在程序动态运行的过程中搜集测试数据;但是这种插桩无法获取进程每次运行的时间。基于进程切换的内核taskhook插桩,是通过对Linux2.6操作系统内核进行分析,建立了进程监控的插桩点选取,获取进程生命周期中的时间相关的指标,最终实现程序的任务性能测试。  相似文献   

8.
软件脆弱性对网络与信息安全产生了极大的威胁,而脆弱性的根源在于软件源代码。因为现有的传统静态检测工具和基于深度学习的检测方法没有完整地表示代码特征,并且简单地使用词嵌入方法转换代码表示,所以检测结果准确率低,误报率高或漏报率高。因此,提出了一种基于混合代码表示的源代码脆弱性检测方法来解决代码表示不完整的问题,并提升检测性能。首先将源代码编译为中间表示(IR),并提取程序依赖图;然后基于数据流和控制流分析进行程序切片来得到结构化的特征,同时使用doc2vec嵌入节点语句得到非结构化的特征;接着使用图神经网络(GNN)对混合特征进行学习;最后使用训练好的GNN进行预测和分类。为了验证所提方法的有效性,在软件保证参考数据集(SARD)和真实世界数据集上进行了实验评估,检测结果的F1值分别达到了95.3%和89.6%。实验结果表明,所提方法有较好的脆弱性检测能力。  相似文献   

9.
介绍了一种异构环境下的并行调试及性能分析工具ParaVT的设计方法和实现.通过对并行程序源代码的分析处理,利用自动插桩模板插入用于调试和性能分析的用户代码,从而对并行程序进行断点调试和性能参数收集,达到进一步优化程序设计的目的.  相似文献   

10.
动态二进制翻译提供了无需重新编译源代码就能将源机器生成的可执行代码自动转换到目标机器的方法,很好地解决了代码兼容性问题.其核心思想是根据程序的动态运行信息找到反复执行的代码序列,对代码序列进行翻译和优化,并将结果多次重用.指令调度作为一种有效的编译优化手段,也适用于动态二进制翻译.在对gcc的指令调度器分析研究的基础上,结合动态二进制翻译的实时性特点,提出了适合动态二进制翻译的效率高、开销小的指令调度算法.  相似文献   

11.
Jie Yin  Chao Ma  Shi‐Min Hu 《Software》2016,46(3):341-360
Instrumentation is a powerful technique for monitoring, profiling, debugging, logging and tracing the software. In order to determine the instrumentation location, the user needs to know where the current executed location is in the source code. Previous instrumentation approaches rely on debugging information to find the location in the source code. For fully optimized programs, debugging information is not complete, which limits the application of those approaches. In this paper, we present pattern‐based abstract syntax tree (PAST) instrumentation, an ideal instrumentation methodology that accurately instruments the fully optimized program. The instrumentation location is specified in an intuitive way that matches the source code at the abstract syntax tree level. The program can be instrumented either at the compile time using the ordinary compiling or when it is running using the just‐in‐time compiling. Experimental results show that PAST can accurately instrument the target program. There is negligible run time overhead when the running program is instrumented without any operation. We have implemented PAST on both x86‐32 and x86‐64 to show that PAST is easily portable across different architecture. Copyright © 2015 John Wiley & Sons, Ltd.  相似文献   

12.
通过编译的C++程序代码并不一定保证代码中不存在缺陷。代码中可能依然隐含了安全、设计或是风格上的缺陷,从而导致程序运行时出现内存泄露、指针误用等现象,或导致程序代码不清晰、可读性差。为了有效查找这些缺陷,探讨了可定制缺陷规则的C++代码缺陷自动检测技术,介绍了两种缺陷定位方法,给出了一种基于XPath技术的缺陷规则定制方法,设计并实现了一种代码缺陷自动检测工具CDD(C++ defect detector),并通过实验证明了缺陷定位方法的有效性以及CDD的易用性。  相似文献   

13.
近几十年来,计算机硬件性能和软件规模技术已不同以往,其承载了人类社会生活生产的方方面面.计算机技术的飞速发展,也带来了人们对程序安全问题的关注.由于市面上存在着较多的遗留软件,这些软件无人维护且缺乏源代码支持,其安全性令人担忧,而二进制分析技术被用来解决该类软件问题.二进制分析技术根据其检测方式不同可分为:基于静态的二进制代码分析技术、基于动态的二进制代码分析技术和动静态混合的二进制代码分析技术.本文调研了近年来的二进制代码安全分析领域上相关研究,分别详细阐述了这3类技术中的主要方法,并对其关键技术进行详细介绍.  相似文献   

14.
动态内存分配为C/C++语言编程人员提供了极大的灵活性,但同时也带来了一个潜在的严重问题——内存泄露。与桌面系统相比,嵌入式系统处理能力弱、内存空间小、运行时间长,如果在程序运行期间发生内存泄露,将导致系统崩溃,造成不可预料的后果,因此需要在开发调试阶段尽早检测出造成内存泄露的代码。提出了一种基于动态检测技术和程序插装技术的嵌入式软件内存泄露分布式检测方法。该方法的实现思想是当程序在目标机运行时,插装代码自动截获内存操作函数,收集内存操作相关信息并把收集到的信息发送到服务器端处理,实现了嵌入式系统内存泄露的准确检测。实验结果证明,由于采用分布式技术进行信息处理,内存泄露检测效率得到了很大的提升。  相似文献   

15.
崔娟 《测控技术》2016,35(1):98-101
介绍了嵌入式Linux操作系统下的一种内核运行态可视化性能分析方法.它采用Linux的字符设备驱动技术,Linux内核源代码内的探针嵌入以及内核补丁技术,基于Socket的Linux端与Windows端的TCP通信技术和Windows端的图形化显示技术,以模块化方式实现了在Windows宿主操作系统下对Linux操作系统运行时系统事件状态变化的图形化地观察手段,从而辅助软件开发人员方便地去诊断和解决嵌入式Linux系统中存在的调度问题、性能问题以及定时问题等.  相似文献   

16.
针对当前软件保护技术存在的不足,提出一种代码碎片化技术,该技术是一种以函数为单元,对函数进行代码shell化、内存布局随机化、执行动态链接化的新型软件保护技术,代码shell化实现代码碎片的位置无关变形,内存布局随机化实现代码碎片的随机内存加载,动态链接化实现对代码碎片的动态执行,通过上述3个环节实现对程序的碎片化处理。实验表明,代码碎片化技术不仅能实现程序执行过程中函数碎片内存位置的随机化,还能实现函数碎片的动态链接执行,增加程序静态逆向分析和动态逆向调试的难度,提高程序的抗逆向分析能力。  相似文献   

17.
Understanding what happens during the runtime of a Java program is difficult. Tracking runtime flow can bring valuable information for program understanding and behavior analysis. Polymorphism, thread concurrency or even simple facts like the number of method invocations and the number of executed bytecodes are valuable information to track, but are difficult to compute outside the Java Virtual Machine (JVM) on running programs. In this paper, we present JBInsTrace, a new tool that instruments and traces Java bytecode. It produces static information about source code and a very fine grained trace of Java software execution, combining them to allow detailed analysis of the runtime. Our tool differs from others because it does not only trace program classes but also JRE classes, and does so at basic block level, without altering the JVM and without statically modifying class files. We explain JBInsTrace design, focused towards efficiency, which results in reasonable performance penalty.  相似文献   

18.
移动应用软件已经拥有了数以千万计的用户群体.根据最新统计,Android手机以85.1%的市场占有份额,成为了最受欢迎的移动端设备.Android应用软件的快速开发,使得如何保证程序质量,成了难题.我们不仅要考虑程序的正确性,也应保证运行时的流畅性.现有的性能研究工作都基于传统的静态分析或者动态执行.对于Android程序,静态分析具有一定的局限性,而动态分析又忽略了APP执行时的遍历方式.因此,本文提出了基于GUI的Android自动化性能测试框架,将着重关注页面状态和APP状态的相关性.通过对页面的分析,聚合,尽可能遍历到APP的各个状态,然后从日志中,找出APP性能上的问题.本框架使用Java作为开发语言,搭建了Android移动软件自动化性能测试框架,并在开源社区F-Droid上随机抽取了移动应用软件进行实验.实验表明,该技术能更多的遍历APP的状态,发现APP在运行过程中出现的性能问题,取得良好的效果.  相似文献   

19.
Java动态类加载机制及其应用   总被引:10,自引:1,他引:10  
Java动态类加载机制是Java虚拟机(JVM)的一个重要特征。它实现了在程序执行的过程中动态地加载所需要的类文件,并且这种动态行为是可以人为控制的。这使得Java语言平台具有在运行期间安装软件组件的能力。通过对Java类加载器的原码进行分析,阐述了Java动态类加载机制的原理和过程,并通过一个客户端服务器(C/S)模式下动态地更新客户端软件功能的例子,说明了Java动态类加载机制的实际应用。  相似文献   

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

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

京公网安备 11010802026262号