cpython/Misc/NEWS.d/next/Library
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
..
2024-05-20-12-35-52.gh-issue-115952.J6n_Kf.rst gh-115952: Fix a potential virtual memory allocation denial of service in pickle (GH-119204) 2025-12-05 19:17:01 +02:00
2025-05-30-18-37-44.gh-issue-134453.kxkA-o.rst GH-134453: Fix subprocess memoryview input handling on POSIX (GH-134949) 2025-11-29 04:25:06 +00:00
2025-09-09-10-13-24.gh-issue-138525.hDTaAM.rst gh-138525: Support single-dash long options and prefix_chars in BooleanOptionalAction (GH-138692) 2025-11-22 20:54:02 +00:00
2025-09-09-13-00-42.gh-issue-138697.QVwJw_.rst gh-138697: Fix inferring dest from a single-dash long option in argparse (#138699) 2025-11-20 18:41:58 +00:00
2025-10-27-17-00-11.gh-issue-140677.hM9pTq.rst gh-140677 Add heatmap visualization to Tachyon sampling profiler (#140680) 2025-12-02 20:33:40 +00:00
2025-11-02-10-44-23.gh-issue-140875.wt6B37.rst gh-140875: Fix handling of unclosed charrefs before EOF in HTMLParser (GH-140904) 2025-11-19 13:55:10 +02:00
2025-11-03-17-13-00.gh-issue-140911.7KFvSQ.rst gh-140911: Ensure that UserString.index() and UserString.rindex() accept UserString as argument (GH-140945) 2025-11-25 15:25:46 +02:00
2025-11-13-13-11-02.gh-issue-60107.LZq3QF.rst gh-60107: Remove a copy from RawIOBase.read (#141532) 2025-11-20 17:37:04 +00:00
2025-11-14-18-00-41.gh-issue-141565.Ap2bhJ.rst GH-141565: Add async code awareness to Tachyon (#141533) 2025-12-06 19:31:40 +00:00
2025-11-15-11-10-16.gh-issue-48752.aB3xYz.rst gh-48752: Add readline.get_pre_input_hook() function (#141586) 2025-12-05 13:18:54 +01:00
2025-11-15-14-58-12.gh-issue-141600.XY2BXg.rst gh-141600: Fix musl version detection on Void Linux (GH-141602) 2025-11-22 12:17:40 -06:00
2025-11-16-04-40-06.gh-issue-69113.Xy7Fmn.rst gh-69113: Fix doctest to report line numbers for __test__ strings (#141624) 2025-12-06 15:47:08 -05:00
2025-11-16-06-08-46.gh-issue-141615.--6EK3.rst gh-141615: Check stdin instead of stdout for use_rawinput in pdb (#141616) 2025-11-19 18:41:25 -08:00
2025-11-17-00-53-51.gh-issue-141645.TC3TL3.rst gh-138122: Refactor the CLI of profiling.sampling into subcommands (#141813) 2025-11-24 11:45:08 +00:00
2025-11-17-08-16-30.gh-issue-141659.QNi9Aj.rst Move the NEWS entry for gh-141659 to the correct section (GH-141744) 2025-11-19 22:12:10 +02:00
2025-11-17-16-53-49.gh-issue-141686.V-xaoI.rst GH-141686: Break cycles created by JSONEncoder.iterencode (GH-141687) 2025-11-18 09:51:18 -08:00
2025-11-17-21-41-58.gh-issue-141679.fs7zLJ.rst gh-141679: Add colour to defaults in argparse help (#141680) 2025-11-23 00:26:50 +00:00
2025-11-18-14-39-31.gh-issue-141570.q3n984.rst gh-141570: can_colorize: Expect fileno() to raise OSError, as documented (#141716) 2025-11-19 15:02:52 +01:00
2025-11-18-15-48-13.gh-issue-105836.sbUw24.rst gh-105836: Fix asyncio.run_coroutine_threadsafe leaving underlying cancelled asyncio task running (#141696) 2025-12-06 19:33:25 +00:00
2025-11-21-21-14-10.gh-issue-141817._v5LdB.rst gh-141817: Add IPV6_HDRINCL constant to the socket module (#141818) 2025-11-22 18:07:21 +01:00
2025-11-22-16-33-48.gh-issue-141863.4PLhnv.rst Docs: Move to method references for bytearray.take_bytes (#142053) 2025-11-28 22:07:34 +01:00
2025-11-24-06-44-45.gh-issue-141781.MsK27r.rst gh-141781: Fix pdb.line_prefix binding (#141779) 2025-11-24 18:45:16 -08:00
2025-11-24-14-05-52.gh-issue-138122.2bbGA8.rst gh-138122: Add thread status statistics to flamegraph profiler (#141900) 2025-11-30 01:42:39 +00:00
2025-11-25-16-00-29.gh-issue-59000.YtOyJy.rst gh-59000: Fix pdb breakpoint resolution for class methods when module not imported (#141949) 2025-12-01 20:41:54 -08:00
2025-11-25-22-54-07.gh-issue-141968.vg3AMJ.rst Docs: Move to method references for bytearray.take_bytes (#142053) 2025-11-28 22:07:34 +01:00
2025-11-25-23-22-46.gh-issue-141968.R1sHnJ.rst Docs: Move to method references for bytearray.take_bytes (#142053) 2025-11-28 22:07:34 +01:00
2025-11-25-23-29-08.gh-issue-141968.0JnjXf.rst gh-141968: Use take_bytes in encodings.punycode (#141974) 2025-11-28 17:47:14 +00:00
2025-11-25-23-35-07.gh-issue-141968.b3Gscp.rst Docs: Move to method references for bytearray.take_bytes (#142053) 2025-11-28 22:07:34 +01:00
2025-11-26-14-20-10.gh-issue-141968.W139Pv.rst gh-141968: Use take_bytes in re._compiler (#141995) 2025-11-28 17:46:10 +00:00
2025-11-27-10-49-13.gh-issue-142006.nzJDG5.rst gh-142006: Fix HeaderWriteError in email.policy.default caused by extra newline (#142008) 2025-12-06 15:59:35 -05:00
2025-11-27-11-39-50.gh-issue-141999._FKGlu.rst gh-141999: Handle KeyboardInterrupt when sampling in the new tachyon profiler (#142000) 2025-11-30 02:49:13 +00:00
2025-11-27-20-16-38.gh-issue-141473.Wq4xVN.rst gh-141473: Fix subprocess.Popen.communicate to send input to stdin upon a subsequent post-timeout call (GH-141477) 2025-11-28 18:04:52 -08:00
2025-11-29-03-02-45.gh-issue-87512.bn4xbm.rst gh-87512: Fix subprocess using timeout= on Windows blocking with a large input= (GH-142058) 2025-11-28 22:07:03 -08:00
2025-11-29-04-20-44.gh-issue-74389.pW3URj.rst gh-74389: gh-70560: subprocess.Popen.communicate() now ignores stdin.flush error when closed (GH-142061) 2025-11-29 05:03:06 +00:00
2025-11-30-04-28-30.gh-issue-141982.pxZct9.rst gh-141982: Fix pdb can't set breakpoints on async functions (#141983) 2025-12-01 23:40:02 -08:00
2025-12-01-14-43-58.gh-issue-138122.nRm3ic.rst gh-138122: Implement frame caching in RemoteUnwinder to reduce memory reads (#142137) 2025-12-06 22:37:34 +00:00
2025-12-03-06-12-39.gh-issue-142214.appYNZ.rst gh-142214: Fix two regressions in dataclasses (#142223) 2025-12-04 20:04:42 -08:00
2025-12-03-09-36-29.gh-issue-142206.ilwegH.rst gh-142206: multiprocessing.resource_tracker: Decode messages using older protocol (GH-142215) 2025-12-03 12:59:14 +00:00
2025-12-04-09-22-31.gh-issue-68552.I_v-xB.rst gh-68552: fix defects policy (#138579) 2025-12-06 16:54:29 -05:00
2025-12-04-23-24-24.gh-issue-139862.NBfsD4.rst GH-139862: Remove color from HelpFormatter (#142274) 2025-12-05 16:21:31 +00:00
2025-12-04-23-26-12.gh-issue-142267.yOM6fP.rst GH-142267: Cache formatter to avoid repeated _set_color calls (#142268) 2025-12-05 16:47:50 +00:00
2025-12-05-16-39-17.gh-issue-75949.pHxW98.rst GH-75949: Fix argparse dropping '|' in mutually exclusive groups on line wrap (#142312) 2025-12-06 15:12:21 +00:00
2025-12-05-18-25-29.gh-issue-142318.EzcQ3N.rst gh-142318: Fix typing 'q' at interactive help screen exiting Tachyon (#142319) 2025-12-05 19:36:28 +00:00
2025-12-06-13-02-13.gh-issue-142332.PNvXCV.rst gh-142332: Fix usage formatting for positional arguments in mutually exclusive groups in argparse (GH-142333) 2025-12-06 18:03:45 +00:00
2025-12-06-16-45-34.gh-issue-64532.4OXZpF.rst GH-64532: Include parent's required optional arguments in subparser usage (#142355) 2025-12-06 18:30:50 +00:00
README.rst Link to blurb on PyPI in the NEWS.d READMEs. (#3323) 2017-09-05 10:38:05 -07:00

Put news entry `blurb`_ files for the *Library* section in this directory.

.. _blurb: https://pypi.org/project/blurb/