Skip to content

Commit

Permalink
Updated.
Browse files Browse the repository at this point in the history
  • Loading branch information
emeryberger committed Dec 11, 2024
1 parent 08ed01b commit f7c1fa4
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
#### 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.

0 comments on commit f7c1fa4

Please # to comment.