@@ -448,7 +448,7 @@ collections (that is, collections of the young and middle generations) will alwa
448448examine roughly the same number of objects (determined by the aforementioned
449449thresholds) the cost of a full collection is proportional to the total
450450number of long-lived objects, which is virtually unbounded. Indeed, it has
451- been remarked that doing a full collection every < constant number > of object
451+ been remarked that doing a full collection after a fixed number of object
452452creations entails a dramatic performance degradation in workloads which consist
453453of creating and storing lots of long-lived objects (for example, building a large list
454454of GC-tracked objects would show quadratic performance, instead of linear as
@@ -533,7 +533,7 @@ into the cache. This is the mechanism that provides the window.
533533
534534When performing the transitive closure of "alive" status, the set of objects
535535yet to visit are stored in one of two places. First, they can be stored in the
536- prefech buffer. Second, there is a LIFO stack, of unlimited size. When object
536+ prefetch buffer. Second, there is a LIFO stack, of unlimited size. When object
537537references are found using ` tp_traverse ` , they are enqueued in the buffer if
538538it is not full, otherwise they are pushed to the stack.
539539
@@ -616,7 +616,7 @@ This optimization, as of March 2025, was tuned on the following hardware
616616platforms:
617617
618618- Apple M3 Pro, 32 GB RAM, 192+128 KB L1, 16 MB L2, compiled with Clang 19
619- - AMD Ryzen 5 7600X, 64 GB RAM, 384 KB L1, 6 GB L2, 32 MB L3, compiled with GCC 12.2.0
619+ - AMD Ryzen 5 7600X, 64 GB RAM, 384 KB L1, 6 MB L2, 32 MB L3, compiled with GCC 12.2.0
620620
621621Benchmarking the effectiveness of this optimization is particularly difficult.
622622It depends both on hardware details, like CPU cache sizes and memory latencies,
0 commit comments