Changeset 0f9c67bf
- Timestamp:
- Apr 13, 2026, 10:42:12 AM (2 weeks ago)
- Branches:
- master
- Children:
- 68af77b
- Parents:
- 5b21636b
- File:
-
- 1 edited
-
doc/theses/mike_brooks_MMath/list.tex (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/list.tex
r5b21636b r0f9c67bf 2 2 3 3 This chapter presents my work on designing and building a linked-list library for \CFA. 4 Due to time limitations and the needs expressed by the \CFA runtime developers, I focussed on providing a doubly-linked list, and its bidirectional lyiterators for traversal.4 Due to time limitations and the needs expressed by the \CFA runtime developers, I focussed on providing a doubly-linked list, and its bidirectional iterators for traversal. 5 5 Simpler data-structures, like stack and queue, can be built from the doubly-linked mechanism with only a slight storage/performance cost because of the unused link field. 6 Reducing to data-structures with a single link follows directly from the more complex doubl y-links and its iterators.6 Reducing to data-structures with a single link follows directly from the more complex double links and its iterators. 7 7 8 8 … … 666 666 This experiment takes the position that: 667 667 \begin{itemize}[leftmargin=*] 668 \item The total time to add and remove is relevant \vs individual times for add and remove.668 \item The total time to add and remove is relevant, as opposed to having one individual time for adding and a separate time for removing. 669 669 Adds without removes quickly fill memory; 670 670 removes without adds is meaningless. … … 673 673 \item[movement] 674 674 Is the add/remove applied to a stack, queue, or something else? 675 In these experiments, strict stack and queue shapes are tested (two movements). 675 676 \item[polarity] 676 677 In which direction does the action apply? 677 678 For a queue, do items flow from first to last or last to first? 678 679 For a stack, is the first or last end used for adding and removing? 680 In these experiments, both polarities are considered, labelled insert-first and insert-last (two polarities). 679 681 \item[accessor] 680 Is an add/remove location given by a list head's first/last, or by a reference to an individual element? 682 Is an add/remove location given by a list head's first/last (@insertFirst@, @removeLast@), or by a reference to an individual element (@insertAfter@, @remove@ of element)? 683 In these experiments, the (three) accessors are: 684 \begin{itemize} 685 \item 686 inserts and removes both through the head ("all-head") 687 \item 688 insert by element and remove through the head ("insert-element") 689 \item 690 insert through head and remove by element ("remove-element") 691 \end{itemize} 681 692 \end{description} 693 \item So, an "operating scenario" is a specific selection of movement, polarity and accessor. These experiments run twelve operating scenarios. 682 694 \item Speed differences caused by the host machine's memory hierarchy need to be identified and explained, 683 695 but do not represent advantages of one linked-list implementation over another. … … 691 703 \begin{itemize} 692 704 \item intrusive lists performing (majorly) differently than wrapped lists, 693 \item a space of ( minor) performance differences among the intrusive lists.705 \item a space of (lesser) performance differences among the intrusive lists. 694 706 \end{itemize} 695 707 708 In the result analysis, a where list length is a performance-influencing factor, once truly ``large'' lengths have been dismissed, these zones are identified as representing different patterns: 709 \begin{description} 710 \item[size zone ``small''] lists of 4--16 elements 711 \item[size zone ``medium''] lists of 50--200 elements 712 \end{description} 713 Each zone buckets four specific sizes at which trials are run. 696 714 697 715 \subsubsection{Experiment setup} … … 1170 1188 1171 1189 In spite of these complex interactions, a couple spots of stability can be analyzed. 1172 In these examples, the size zones 4--16, ``small,'' and above 48, ``medium,''covering four specific sizes apiece, each tends to show a simple winner/loser story.1190 In these examples, the two defined Size Zones (4--16 being ``small,'' and above 50 being ``medium,'') covering four specific sizes apiece, each tends to show a simple winner/loser story. 1173 1191 Manual inspection of other such plots (not detailed) showed that this quality is generally upheld. 1174 1192 So these zones are used for basing comparison.
Note:
See TracChangeset
for help on using the changeset viewer.