cpython/Misc/NEWS.d
Pablo Galindo Salgado 572c780aa8
gh-138122: Implement frame caching in RemoteUnwinder to reduce memory reads (#142137)
This PR implements frame caching in the RemoteUnwinder class to significantly reduce memory reads when profiling remote processes with deep call stacks.

When cache_frames=True, the unwinder stores the frame chain from each sample and reuses unchanged portions in subsequent samples. Since most profiling samples capture similar call stacks (especially the parent frames), this optimization avoids repeatedly reading the same frame data from the target process.

The implementation adds a last_profiled_frame field to the thread state that tracks where the previous sample stopped. On the next sample, if the current frame chain reaches this marker, the cached frames from that point onward are reused instead of being re-read from remote memory.

The sampling profiler now enables frame caching by default.
2025-12-06 22:37:34 +00:00
..
next gh-138122: Implement frame caching in RemoteUnwinder to reduce memory reads (#142137) 2025-12-06 22:37:34 +00:00
3.5.0.rst
3.5.0a1.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
3.5.0a2.rst
3.5.0a3.rst
3.5.0a4.rst
3.5.0b1.rst
3.5.0b2.rst
3.5.0b3.rst
3.5.0b4.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.5.0rc1.rst gh-109634: Use :samp: role (GH-109635) 2023-09-23 09:31:20 +03:00
3.5.0rc2.rst
3.5.0rc3.rst
3.5.0rc4.rst
3.5.1.rst
3.5.1rc1.rst gh-109634: Use :samp: role (GH-109635) 2023-09-23 09:31:20 +03:00
3.5.2.rst
3.5.2rc1.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.5.3.rst Add missing sections to blurbs (#114553) 2024-02-12 16:16:16 +02:00
3.5.3rc1.rst GH-121970: Extract `misc_news` into a new extension (#129577) 2025-02-02 16:17:02 +00:00
3.5.4.rst Docs: Update Donghee Na's name (#109743) 2023-09-22 12:52:57 -06:00
3.5.4rc1.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.5.5.rst
3.5.5rc1.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.6.0.rst Add missing sections to blurbs (#114553) 2024-02-12 16:16:16 +02:00
3.6.0a1.rst NEWS: Fix Sphinx warnings and increase threshold for new news nits (#121482) 2024-07-08 14:30:05 -06:00
3.6.0a2.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.6.0a3.rst NEWS: Reorder items by section (GH-92373) 2022-05-06 13:58:58 +09:00
3.6.0a4.rst GH-121970: Extract `misc_news` into a new extension (#129577) 2025-02-02 16:17:02 +00:00
3.6.0b1.rst GH-121970: Extract `misc_news` into a new extension (#129577) 2025-02-02 16:17:02 +00:00
3.6.0b2.rst Docs: fix typos in documentation (gh-118941) 2024-05-15 18:38:32 -05:00
3.6.0b3.rst
3.6.0b4.rst
3.6.0rc1.rst gh-106909: Use role :const: for referencing module constants (GH-106910) 2023-07-21 12:40:37 +03:00
3.6.0rc2.rst
3.6.1.rst
3.6.1rc1.rst
3.6.2.rst Add missing sections to blurbs (#114553) 2024-02-12 16:16:16 +02:00
3.6.2rc1.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.6.2rc2.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.6.3.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.6.3rc1.rst Docs: fix typos in documentation (gh-118941) 2024-05-15 18:38:32 -05:00
3.6.4.rst
3.6.4rc1.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.6.5.rst
3.6.5rc1.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.6.6.rst
3.6.6rc1.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.7.0.rst
3.7.0a1.rst Docs: fix typos in documentation (gh-118941) 2024-05-15 18:38:32 -05:00
3.7.0a2.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.7.0a3.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.7.0a4.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.7.0b1.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.7.0b2.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.7.0b3.rst Docs: add link roles with Sphinx extlinks (#117850) 2024-04-15 21:22:00 +03:00
3.7.0b4.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.7.0b5.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.7.0rc1.rst
3.8.0a1.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.8.0a2.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
3.8.0a3.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.8.0a4.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.8.0b1.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.9.0a1.rst gh-133644: Remove deprecated Python initialization getter functions (#133661) 2025-05-09 11:39:23 +00:00
3.9.0a2.rst gh-101100: Fix Sphinx warnings in whatsnew/3.9.rst (#118364) 2024-04-28 20:31:22 +03:00
3.9.0a3.rst gh-101100: Fix Sphinx Lint warnings in Misc/ (#113946) 2024-01-13 00:25:04 +02:00
3.9.0a4.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.9.0a5.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.9.0a6.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.9.0b1.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.10.0a1.rst gh-141004: Document PyOS_mystr(n)icmp (#141760) 2025-11-25 14:44:52 +01:00
3.10.0a2.rst gh-101100: Consolidate documentation on ModuleType attributes (#124709) 2024-10-09 10:53:57 +00:00
3.10.0a3.rst Doc: More duplicate word fixes (GH-136299) 2025-07-11 21:18:47 +03:00
3.10.0a4.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.10.0a5.rst NEWS: Fix Sphinx warnings and increase threshold for new news nits (#121482) 2024-07-08 14:30:05 -06:00
3.10.0a6.rst NEWS: Fix Sphinx warnings and increase threshold for new news nits (#121482) 2024-07-08 14:30:05 -06:00
3.10.0a7.rst GH-103484: Fix permanently redirects reported by linkcheck (GH-124144) 2024-09-17 02:53:38 +00:00
3.10.0b1.rst gh-105812: Use the `:deco:` role in place of manual decorator markup (#139619) 2025-10-05 21:15:36 +01:00
3.11.0a1.rst gh-141004: Document PyImport_Inittab (GH-141844) 2025-11-24 16:38:18 +00:00
3.11.0a2.rst gh-133644: remove PyWeakref_GetObject and PyWeakref_GET_OBJECT (GH-133657) 2025-09-24 11:25:56 +02:00
3.11.0a3.rst NEWS: Fix Sphinx warnings and increase threshold for new news nits (#121482) 2024-07-08 14:30:05 -06:00
3.11.0a4.rst gh-133644: remove deprecated PyImport_ImportModuleNoBlock (#133655) 2025-05-08 13:08:43 +00:00
3.11.0a5.rst gh-101100: Consolidate documentation on ModuleType attributes (#124709) 2024-10-09 10:53:57 +00:00
3.11.0a6.rst gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) 2024-07-19 08:06:02 +00:00
3.11.0a7.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.11.0b1.rst gh-105812: Use the `:deco:` role in place of manual decorator markup (#139619) 2025-10-05 21:15:36 +01:00
3.12.0a1.rst GH-101100: Remove some entries from `nitpick_ignore` (#138464) 2025-09-08 22:10:26 +00:00
3.12.0a2.rst gh-141004: Document PyImport_Inittab (GH-141844) 2025-11-24 16:38:18 +00:00
3.12.0a3.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.12.0a4.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.12.0a5.rst Doc: More duplicate word fixes (GH-136299) 2025-07-11 21:18:47 +03:00
3.12.0a6.rst GH-103484: Fix permanently redirects reported by linkcheck (GH-124144) 2024-09-17 02:53:38 +00:00
3.12.0a7.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.12.0b1.rst gh-97850: remove `find_loader and get_loader from pkgutil` (#119656) 2024-11-01 18:35:22 +02:00
3.13.0a1.rst gh-133601: Remove deprecated typing.no_type_check_decorator (#133602) 2025-10-20 21:10:44 +00:00
3.13.0a2.rst gh-123492: Remove unnecessary :func: parentheses (#123493) 2024-08-30 14:34:09 +03:00
3.13.0a3.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.13.0a4.rst gh-133875: Remove deprecated pathlib.PurePath.is_reserved (#133876) 2025-07-19 17:07:46 +00:00
3.13.0a5.rst gh-72249: Correct wording of GH-101910 blurb (GH-138468) 2025-09-03 13:19:54 -05:00
3.13.0a6.rst GH-101100: Remove some entries from `nitpick_ignore` (#138464) 2025-09-08 22:10:26 +00:00
3.13.0b1.rst gh-123517: Remove unnecessary `:meth:` parentheses (#123518) 2024-09-01 05:59:42 +01:00
3.14.0a1.rst gh-141004: Document Py_MEMCPY (GH-141676) 2025-11-17 17:52:13 -05:00
3.14.0a2.rst GH-123299: Copyedit 3.14 What's New: CPython bytecode changes (#139402) 2025-09-29 15:11:54 +00:00
3.14.0a3.rst Python 3.14.0a3 2024-12-17 11:50:39 +02:00
3.14.0a4.rst Fix some typos in various doc files (GH-132589) 2025-04-16 18:11:47 +00:00
3.14.0a5.rst Python 3.14.0a5 2025-02-11 19:16:29 +02:00
3.14.0a6.rst gh-133656: Remove deprecated zipimport.zipimporter.load_module (GH-133662) 2025-08-30 01:28:18 +00:00
3.14.0a7.rst GH-101100: Remove some entries from `nitpick_ignore` (#138464) 2025-09-08 22:10:26 +00:00
3.14.0b1.rst Revert "gh-112068: C API: Add support of nullable arguments in PyArg_Parse (GH-121303)" (#136991) 2025-07-22 16:39:50 +03:00
3.15.0a1.rst Python 3.15.0a1 2025-10-14 13:46:08 +03:00
3.15.0a2.rst Docs: Move to method references for bytearray.take_bytes (#142053) 2025-11-28 22:07:34 +01:00