CGraph
Protected Member Functions | Private Attributes | Friends | List of all members
UMetrics Class Reference

CGraph自带的线程池性能指标统计,主要包含 本地任务队列pop、全局任务队列pop、工作窃取、任务push、轻量级等待(yield)、深度等待(cv.wait)等相关的指标 More...

#include <UMetrics.h>

Inheritance diagram for UMetrics:
Inheritance graph
[legend]
Collaboration diagram for UMetrics:
Collaboration graph
[legend]

Protected Member Functions

 UMetrics ()=default
 
CVoid calcLocal (CBool result, CSize size)
 
CVoid calcPool (CBool result, CSize size)
 
CVoid calcSteal (CBool result, CSize size)
 
CVoid show (const std::string &tag) const
 
CVoid reset ()
 

Private Attributes

CSize local_pop_real_num_ = 0
 
CSize local_pop_times_ = 0
 
CSize pool_pop_real_num_ = 0
 
CSize pool_pop_times_ = 0
 
CSize steal_pop_real_num_ = 0
 
CSize steal_pop_times_ = 0
 
CSize local_push_real_num_ = 0
 
CSize local_push_yield_times_ = 0
 
CSize fleet_wait_times_ = 0
 
CSize deep_wait_times_ = 0
 

Friends

class UThreadBase
 
class UThreadPrimary
 
class UThreadSecondary
 
class UThreadPool
 

Additional Inherited Members

- Public Member Functions inherited from CStruct
virtual ~CStruct ()=default
 

Detailed Description

CGraph自带的线程池性能指标统计,主要包含 本地任务队列pop、全局任务队列pop、工作窃取、任务push、轻量级等待(yield)、深度等待(cv.wait)等相关的指标

Constructor & Destructor Documentation

◆ UMetrics()

UMetrics::UMetrics ( )
explicitprotecteddefault

Member Function Documentation

◆ calcLocal()

CVoid UMetrics::calcLocal ( CBool  result,
CSize  size 
)
inlineprotected

计算thread 本地抓取的信息

Parameters
result
size
Returns

◆ calcPool()

CVoid UMetrics::calcPool ( CBool  result,
CSize  size 
)
inlineprotected

计算thread 在全局队列中抓取的信息 更新pool_pop_times_(尝试pop的次数)和pool_pop_real_num_(实际pop出来的任务数量)

Parameters
result
size
Returns

◆ calcSteal()

CVoid UMetrics::calcSteal ( CBool  result,
CSize  size 
)
inlineprotected

计算thread 在偷盗的信息

Parameters
result
size
Returns

◆ reset()

CVoid UMetrics::reset ( )
inlineprotected

恢复所有的数据信息

Returns

◆ show()

CVoid UMetrics::show ( const std::string &  tag) const
inlineprotected

展示对应的结果信息

Parameters
key
Returns
@notice 不确保所有数据完全正确,主要是本人做性能调优分析和使用

Friends And Related Function Documentation

◆ UThreadBase

friend class UThreadBase
friend

◆ UThreadPool

friend class UThreadPool
friend

◆ UThreadPrimary

friend class UThreadPrimary
friend

◆ UThreadSecondary

friend class UThreadSecondary
friend

Member Data Documentation

◆ deep_wait_times_

CSize UMetrics::deep_wait_times_ = 0
private

◆ fleet_wait_times_

CSize UMetrics::fleet_wait_times_ = 0
private

◆ local_pop_real_num_

CSize UMetrics::local_pop_real_num_ = 0
private

◆ local_pop_times_

CSize UMetrics::local_pop_times_ = 0
private

◆ local_push_real_num_

CSize UMetrics::local_push_real_num_ = 0
private

◆ local_push_yield_times_

CSize UMetrics::local_push_yield_times_ = 0
private

◆ pool_pop_real_num_

CSize UMetrics::pool_pop_real_num_ = 0
private

◆ pool_pop_times_

CSize UMetrics::pool_pop_times_ = 0
private

◆ steal_pop_real_num_

CSize UMetrics::steal_pop_real_num_ = 0
private

◆ steal_pop_times_

CSize UMetrics::steal_pop_times_ = 0
private

The documentation for this class was generated from the following file: