'Python tracemalloc, what is size and count?
I am using the tracemalloc library to pinpoint memory concerns in my application.
This is the code that I am using.
tracemalloc.start()
snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')
numStats = len(top_stats)
statsThreshold = 100
if numStats < statsThreshold:
numStatsCollections = numStats
else:
numStatsCollections = statsThreshold
collectedStats = str(top_stats[:numStatsCollections])
self.memLogger.error('\n----------START----------\n' +
collectedStats.replace(',','\n') + '\n----------END----------\n')
An example output is as follows.
[<Statistic traceback=<Traceback (<Frame filename='C:\\Users\\TheUser\\AppData\\Local\\Programs\\Python\\Python38\\lib\\base64.py' lineno=87>
)> size=10308228 count=107>
<Statistic traceback=<Traceback (<Frame filename='C:\\Users\\TheUser\\AppData\\Local\\Programs\\Python\\Python38\\lib\\json\\decoder.py' lineno=353>
)> size=3549589 count=37774>
Can someone please explain what those values mean?
- lineno
- size
- count
Solution 1:[1]
I found this snippet below here https://willnewton.name/2016/12/28/debugging-memory-leaks-in-python/:
"The numbers can be interpreted as follows:
- size, the total size of allocations at this call site
- count, the total number of allocations at this call site
- average, the average size of allocations at this call site "
Lineno is the linenumber.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Chandler Tayek |