From f7c1fa4ba7a1462880a76e3ac4a22902890e0dfd Mon Sep 17 00:00:00 2001 From: Emery Berger Date: Wed, 11 Dec 2024 14:45:24 -0500 Subject: [PATCH] Updated. --- README.md | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7b552d8..7a5d81e 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,24 @@ This command creates the file `bigO.pdf` that contains graphs like this: ### Technical Details -`bigO`'s curve-fitting based approach is inspired by ["Measuring Empirical Computational Complexity"](https://theory.stanford.edu/~aiken/publications/papers/fse07.pdf) by Goldsmith et al., FSE 2007. - -To generate diversity even for fixed inputs, `bigO` uses a novel approach that randomly dilates both the execution time of called functions and memory allocations, in effect simulating the effect of different inputs. \ No newline at end of file +#### Curve-fitting + +`bigO`'s curve-fitting based approach is directly inspired by +["Measuring Empirical Computational +Complexity"](https://theory.stanford.edu/~aiken/publications/papers/fse07.pdf) +by Goldsmith et al., FSE 2007, using log-log plots to fit a power-law distribution. + +Unlike that work, `bigO` uses the +[AIC](https://en.wikipedia.org/wiki/Akaike_information_criterion) to +select the best model. `bigO` also measures space complexity by +tracking memory allocations during function execution. + +#### Diversity via random time and space dilation + +While previous work depends on functions being executed over a wide +range of inputs, `bigO` uses a novel approach that lets it generate +diversity even for fixed inputs. This approach works by randomly +dilating the execution time of functions called by the function being +tested, as well as the size of memory allocations. This approach lets +`bigO` collect more data points and better measure computational +complexity. \ No newline at end of file