Solving shape-analysis problems in languages with destructive updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Asymptotic Complexity from Experiments? A Case Study for Randomized Algorithms
WAE '00 Proceedings of the 4th International Workshop on Algorithm Engineering
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Using finite experiments to study asymptotic performance
Experimental algorithmics
Experimental analysis of algorithms
Experimental analysis of algorithms
gprof: a call graph execution profiler
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Recursive data structure profiling
Proceedings of the 2005 workshop on Memory system performance
Dynamic Data Structure Analysis for Java Programs
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Journal of Systems and Software
Blended analysis for performance understanding of framework-based applications
Proceedings of the 2007 international symposium on Software testing and analysis
Measuring empirical computational complexity
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Precise memory leak detection for java software using container profiling
Proceedings of the 30th international conference on Software engineering
Dynamic shape analysis via degree metrics
Proceedings of the 2009 international symposium on Memory management
Go with the flow: profiling copies to find runtime bloat
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Detecting inefficiently-used containers to avoid bloat
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Finding low-utility data structures
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Tracking data structures for postmortem analysis (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Measuring empirical computational complexity
Measuring empirical computational complexity
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
The beauty and the beast: separating design from algorithm
Proceedings of the 25th European conference on Object-oriented programming
Vision paper: the essence of structural models
Proceedings of the 14th international conference on Model driven engineering languages and systems
ShadowData: shadowing heap objects in Java
Proceedings of the 11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
SIF: a selective instrumentation framework for mobile applications
Proceeding of the 11th annual international conference on Mobile systems, applications, and services
Proceedings of the 14th ACM SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Context-sensitive delta inference for identifying workload-dependent performance bottlenecks
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Toddler: detecting performance problems via similar memory-access patterns
Proceedings of the 2013 International Conference on Software Engineering
Discovering, reporting, and fixing performance bugs
Proceedings of the 10th Working Conference on Mining Software Repositories
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Estimating the Empirical Cost Function of Routines with Dynamic Workloads
Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
Traditional profilers identify where a program spends most of its resources. They do not provide information about why the program spends those resources or about how resource consumption would change for different program inputs. In this paper we introduce the idea of algorithmic profiling. While a traditional profiler determines a set of measured cost values, an algorithmic profiler determines a cost function. It does that by automatically determining the "inputs" of a program, by measuring the program's "cost" for any given input, and by inferring an empirical cost function.