aboutsummaryrefslogtreecommitdiff
path: root/thesis/parts/background.tex
diff options
context:
space:
mode:
Diffstat (limited to 'thesis/parts/background.tex')
-rw-r--r--thesis/parts/background.tex13
1 files changed, 6 insertions, 7 deletions
diff --git a/thesis/parts/background.tex b/thesis/parts/background.tex
index 0bf265b..8977152 100644
--- a/thesis/parts/background.tex
+++ b/thesis/parts/background.tex
@@ -44,7 +44,7 @@ If we can find a selection of types that satisfy our functional requirements, th
This will work so long as our benchmarks are roughly representative of 'real world' inputs.
Unfortunately, this technique scales poorly for larger applications.
-As the number of types we must select increases linearly, the number of combinations we must try increases exponentially (provided they have roughly the same number of candidates).
+As the number of types we must select increases linearly, the number of possible permutations increases exponentially (provided they have roughly the same number of candidates).
This quickly becomes unfeasible, so we must explore other selection methods.
\section{Prior literature}
@@ -100,11 +100,7 @@ Brainy\parencite{jung_brainy_2011} gathers statistics similarly, however it uses
ML has the advantage of being able to detect patterns a human may not be aware of.
For example, Brainy takes into account statistics from hardware counters, which are difficult for a human to reason about.
-This approach also makes it easier to add new collection implementations, as rules do not need to be written by hand.
-
-\cite{thomas_framework_2005} also uses an ML approach, but focuses on parallel algorithms rather than data structures.
-On installation, it collects information about the system and the performance of various algorithms.
-This is then
+This also makes it easier to add new collection implementations, as rules do not need to be written by hand.
\subsection{Estimate-based approaches}
@@ -122,7 +118,10 @@ For instance, we may choose to switch if we reduce the estimated space cost by m
By generating a cost model based on benchmarks, CollectionSwitch manages to be more flexible than rule-based approaches.
Like ML approaches, adding new implementations requires little extra work, but has the advantage of being possible without having to re-train a model.
-A similar approach is used by \cite{l_liu_perflint_2009} for the C++ standard library. %meowr
+A similar approach is used by \cite{l_liu_perflint_2009} for the C++ standard library.
+It focuses on measuring more fine-grained operations, such as list resizing.
+However, it does not take the collection size into account.
+
\subsection{Functional requirements}