SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
Reducing cross domain call overhead using batched futures
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Uncovering Database Access Optimizations in the Middle Tier with TORPEDO
ICDE '05 Proceedings of the 21st International Conference on Data Engineering
Extracting and Representing Cross-Language Dependencies in Diverse Software Systems
WCRE '05 Proceedings of the 12th Working Conference on Reverse Engineering
Scenario-Driven Dynamic Analysis for Comprehending Large Software Systems
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Cross-Language Program Analysis and Refactoring
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Reengineering Standard Java Runtime Systems through Dynamic Bytecode Instrumentation
SCAM '07 Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and Manipulation
Interprocedural query extraction for transparent persistence
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Queryll: Java database queries through bytecode rewriting
Proceedings of the ACM/IFIP/USENIX 2006 International Conference on Middleware
Efficient character-level taint tracking for Java
Proceedings of the 2009 ACM workshop on Secure web services
The RoadRunner Dynamic Analysis Framework for Concurrent Programs
Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
SP '10 Proceedings of the 2010 IEEE Symposium on Security and Privacy
Information Sciences: an International Journal
Sprint: speculative prefetching of remote data
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Automatic prefetching by traversal profiling in object persistence architectures
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Applications that combine general program logic with persistent databases (e.g., three-tier applications) often suffer large performance penalties from poor use of the database. We introduce a program analysis technique that combines information flow in the program with commutativity analysis of its database operations to produce a unified dependency graph for database statements, which provides programmers with a high-level view of how costly database operations are and how they are connected in the program. As an example application of our analysis we describe three optimizations that can be discovered by examining the structure of the dependency graph; each helps remove communication latency from the critical path of a multi-tier system. We implement our technique in a tool for Java applications using JDBC and experimentally validate it using the multi-tier component of the Dacapo benchmark.