homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Enhance Python's Memory Instrumentation with COUNT_ALLOCS
Type: enhancement Stage: patch review
Components: Versions: Python 3.8
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: eelizondo, serhiy.storchaka, vstinner
Priority: normal Keywords: patch

Created on 2018年03月12日 19:31 by eelizondo, last changed 2022年04月11日 14:58 by admin.

Pull Requests
URL Status Linked Edit
PR 6091 closed eelizondo, 2018年03月12日 22:05
Messages (4)
msg313684 - (view) Author: Eddie Elizondo (eelizondo) * Date: 2018年03月12日 19:33
[WIP]
msg313685 - (view) Author: Eddie Elizondo (eelizondo) * Date: 2018年03月12日 19:47
Currently, Python has very few instrumentation when it comes to the types of allocations that it's doing. For instance, we currently can't identify how many times an object uses free lists vs actual mallocs.
Currently, there's a special build which can be used by compiling with "-DCOUNT_ALLOCS". However, this build is not ABI compatible with extensions. Meaning you have to recompile all the modules that are used. Doing this on a large scale scenario (1000+ modules) is not feasible.
Thus, I propose the following enhancements:
* Make COUNT_ALLOCS ABI compatible
Then:
* Expand the counters to not only track allocs and frees but also distinguish between:
* GC Counts: Allocs/Frees coming from PyObject_GC_Malloc PyObject_GC_Del
* Memory Counts: Allocs/Frees coming from PyMem_Malloc/PyObject_Malloc PyObject_Free (modulo GC objects).
* Free Lists: "Allocs/Frees" coming from specific object's free_lists/caches.
* Misc: Extra kinds of "Allocs/Frees" such as code's zombie frame.
msg313686 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2018年03月12日 19:56
Could tracemalloc help you?
msg313691 - (view) Author: Eddie Elizondo (eelizondo) * Date: 2018年03月12日 20:13
@serhiy.storchaka tracemalloc can't distinguish between the usage of gc allocs, normal mallocs, and free list reuse.
History
Date User Action Args
2022年04月11日 14:58:58adminsetgithub: 77239
2018年03月12日 22:05:43eelizondosetkeywords: + patch
stage: patch review
pull_requests: + pull_request5852
2018年03月12日 20:13:53eelizondosetmessages: + msg313691
2018年03月12日 19:56:07serhiy.storchakasetnosy: + vstinner, serhiy.storchaka
messages: + msg313686
2018年03月12日 19:47:08eelizondosetmessages: + msg313685
2018年03月12日 19:33:55eelizondosetmessages: + msg313684
title: [WIP] Enhance Python's Memory Instrumentation with COUNT_ALLCOS -> Enhance Python's Memory Instrumentation with COUNT_ALLOCS
2018年03月12日 19:33:31eelizondosettitle: [WIP] Enhancing Python's COUNT_ALLOCS -> [WIP] Enhance Python's Memory Instrumentation with COUNT_ALLCOS
2018年03月12日 19:31:45eelizondosettitle: Enhancing Python -> [WIP] Enhancing Python's COUNT_ALLOCS
2018年03月12日 19:31:15eelizondocreate

AltStyle によって変換されたページ (->オリジナル) /