|
|
@ -84,7 +84,7 @@ pub fn main() void {
|
|
|
|
// use a marble scoop, spoon magnet, and feather tongs to grab
|
|
|
|
// use a marble scoop, spoon magnet, and feather tongs to grab
|
|
|
|
// each type of object.
|
|
|
|
// each type of object.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Now, would you rather the magic bag:
|
|
|
|
// Now, would you rather use the magic bag:
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// A. Grouped the items in clusters so you have to pick up one
|
|
|
|
// A. Grouped the items in clusters so you have to pick up one
|
|
|
|
// marble, then one spoon, then one feather?
|
|
|
|
// marble, then one spoon, then one feather?
|
|
|
@ -95,7 +95,7 @@ pub fn main() void {
|
|
|
|
// marbles at once, then all the spoons, then all of the
|
|
|
|
// marbles at once, then all the spoons, then all of the
|
|
|
|
// feathers?
|
|
|
|
// feathers?
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// If this metaphor is working, hopefully it's clear that the 'B'
|
|
|
|
// If this metaphor is working, hopefully, it's clear that the 'B'
|
|
|
|
// option would be much more efficient.
|
|
|
|
// option would be much more efficient.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Well, it probably comes as little surprise that storing and
|
|
|
|
// Well, it probably comes as little surprise that storing and
|
|
|
@ -120,3 +120,7 @@ pub fn main() void {
|
|
|
|
// three arrays of one data type each, like those in the exercise
|
|
|
|
// three arrays of one data type each, like those in the exercise
|
|
|
|
// above (SoA).
|
|
|
|
// above (SoA).
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
|
|
|
// For a more practical application of "data-oriented design"
|
|
|
|
|
|
|
|
// watch the following talk from Andrew Kelley, the creator of Zig:
|
|
|
|
|
|
|
|
// https://vimeo.com/649009599
|
|
|
|
|
|
|
|
//
|
|
|
|