counter
计数器
。 用来了解事物发生的频率。个人理解是给开发分析使用,实际运行没什么用处。
scope 包含一组counter
在使用 counter之前必须先创建scope
image.png
其中ph_counter_scope_define()创建一个iosched的scope,这里面最多可以存16个counter。叫做slot
scope互相之间可以有父子继承关系。NULL表示不继承
block
这个东西是每个线程本地保存的,各个线程独立操作自己的block,不用加锁。
要创建block的场景只有两个:
当你在同一个线程内需要频繁进行计数器更新的时候
当你在一个线程内对多个计数器进行更新,并期望这个操作尽可能快的时候。
这个时候我们会创建一个“block”,然后利用它进行计数器更新。
计数器的实现方式是,单个线程可以不加争用地操纵它们的值(没有锁定!),但允许读者获得相关计数器集的一致视图。