Optimally profiling and tracing programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Exploiting hardware performance counters with flow and context sensitive profiling
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
ICSE workshop on software visualization
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Java Virtual Machine Specification
Java Virtual Machine Specification
Fragment class analysis for testing of polymorphism in Java software
Proceedings of the 25th International Conference on Software Engineering
An Information Exploration Tool for Performance Analysis of Java Programs
TOOLS '01 Proceedings of the Technology of Object-Oriented Languages and Systems
Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming
Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming
Dynamic applications from the ground up
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Portable, efficient, and accurate sampling profiling for java-based middleware
SEM '05 Proceedings of the 5th international workshop on Software engineering and middleware
Portable and accurate sampling profiling for Java
Software—Practice & Experience - Research Articles
Using Java method traces to automatically characterize and model J2EE server applications
Proceedings of the 38th conference on Winter simulation
Automated gui testing guided by usage profiles
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Aspect weaving in standard Java class libraries
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Adaptive Monitoring with Dynamic Differential Tracing-Based Diagnosis
DSOM '08 Proceedings of the 19th IFIP/IEEE international workshop on Distributed Systems: Operations and Management: Managing Large-Scale Service Deployment
Advanced runtime adaptation for Java
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
@J: towards rapid development of dynamic analysis tools for the Java Virtual Machine
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Proceedings of the first joint WOSP/SIPEW international conference on Performance engineering
Visualizing dynamic metrics with profiling blueprints
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Leveraging many simple statistical models to adaptively monitor software systems
International Journal of High Performance Computing and Networking
Aspect-based dynamic software updating: a model and its empirical evaluation
Proceedings of the tenth international conference on Aspect-oriented software development
Polymorphic bytecode instrumentation
Proceedings of the tenth international conference on Aspect-oriented software development
Self-refining aspects for dynamic program analysis
Proceedings of the tenth international conference on Aspect-oriented software development companion
Diagnosis of application server performance problems via thread level pattern analysis
Proceedings of the First International Workshop on Cloud Computing Platforms
Comprehensive aspect weaving for Java
Science of Computer Programming
Counting messages as a proxy for average execution time in pharo
Proceedings of the 25th European conference on Object-oriented programming
Complete and Platform-Independent Calling Context Profiling for the Java Virtual Machine
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
A portable and customizable profiling framework for java based on bytecode instruction counting
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
EJBMemProf – a memory profiling framework for enterprise javabeans
CBSE'05 Proceedings of the 8th international conference on Component-Based Software Engineering
Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof
Proceedings of the 7th ACM european conference on Computer Systems
Profiling-as-a-Service: adaptive scalable resource profiling for the cloud in the cloud
ICSOC'11 Proceedings of the 9th international conference on Service-Oriented Computing
Clustering methodologies for software engineering
Advances in Software Engineering
Execution profiling blueprints
Software—Practice & Experience
Leveraging many simple statistical models to adaptively monitor software systems
ISPA'07 Proceedings of the 5th international conference on Parallel and Distributed Processing and Applications
Dynamic aspect-oriented programming in java: the hotwave experience
Transactions on Aspect-Oriented Software Development IX
Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools
JP2: Call-site aware calling context profiling for the Java Virtual Machine
Science of Computer Programming
Dynamic optimization of bytecode instrumentation
Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages
Hi-index | 0.00 |
Instrumentation-based profiling has many advantages and one serious disadvantage: usually high performance overhead. This overhead can be substantially reduced if only a small part of the target application (for example, one that has previously been identified as a performance bottleneck) is instrumented, while the rest of the application code continues to run at full speed. The value of such a profiling technology would increase further if the code could be instrumented and de-instrumented as many times as needed at run time.In this paper we present an experimental profiling system called JFluid, which includes a modified Java™ VM and a GUI tool, and addresses both of the above issues. Our tool supports instrumentation of a group of methods defined as an arbitrary "root" method plus all methods that it calls (a call subgraph). It appears that static determination of all methods in a call subgraph is difficult in presence of virtual methods, bug fortunately, with dynamic code hotswapping available, two schemes of dynamic call subgraph revelation and instrumentation can be suggested. Measurements that we obtained when performing full and partial program profiling using both schemes show that the overhead can be reduced substantially using this technique, and that one of the schemes generally results in a smaller number of instrumented methods and better performance. Furthermore, we observe that our approach generally works much better for large (for example, J2EE and Web) applications, than for small benchmarks.