VSF Documented
visualize_heap_map.Diff Class Reference

Public Member Functions

 __post_init__ (self)
 
bool is_lock_mode (self)
 
list[Blockcurr_only (self)
 
list[Blockprev_only (self)
 
list[Blocklock_new (self)
 
list[Blocklock_freed (self)
 
list[Blockleaked (self)
 
int sum_size (self, list[Block] blocks)
 

Data Fields

 is_lock_mode
 

Protected Member Functions

set[int] _freed_addrs (self)
 

Protected Attributes

dict _prev_addrs = {b.addr for b in self.prev.allocs}
 
dict _curr_addrs = {b.addr for b in self.curr.allocs}
 

Detailed Description

通用对比分析:对比任意两次 dump
锁定期间分析:通用对比的特例,额外约束 prev.locked 且 curr.unlocked

Member Function Documentation

◆ __post_init__()

visualize_heap_map.Diff.__post_init__ ( self)

◆ is_lock_mode()

bool visualize_heap_map.Diff.is_lock_mode ( self)
是否为锁定期间分析模式:相邻两个 dump,第一个 locked,第二个 unlocked

◆ curr_only()

list[Block] visualize_heap_map.Diff.curr_only ( self)
curr 独有的已分配块(新增)

◆ prev_only()

list[Block] visualize_heap_map.Diff.prev_only ( self)
prev 独有的已分配块(释放)

◆ _freed_addrs()

set[int] visualize_heap_map.Diff._freed_addrs ( self)
protected

◆ lock_new()

list[Block] visualize_heap_map.Diff.lock_new ( self)
lock 期间新增的块(curr_only 中 idx >= locked_idx)

◆ lock_freed()

list[Block] visualize_heap_map.Diff.lock_freed ( self)
lock 期间新增且在 unlock 时释放的块

◆ leaked()

list[Block] visualize_heap_map.Diff.leaked ( self)
泄漏:lock 期间新增但未在 unlock 时释放

◆ sum_size()

int visualize_heap_map.Diff.sum_size ( self,
list[Block] blocks )

Field Documentation

◆ _prev_addrs

dict visualize_heap_map.Diff._prev_addrs = {b.addr for b in self.prev.allocs}
protected

◆ _curr_addrs

dict visualize_heap_map.Diff._curr_addrs = {b.addr for b in self.curr.allocs}
protected

◆ is_lock_mode

visualize_heap_map.Diff.is_lock_mode
Generated from commit: vsfteam/vsf@ceb53fd