摘要:我想看看我是否可以重构具有规律,以使其更易于更新和维护一些C++代码。重构规则的C++代码模式
详细:
我有一个创建线程本地计数器来跟踪统计的程序执行过程中的一些代码。目前,当统计信息添加到源代码中时,需要更新5件事情:计数器线程本地声明,计数器总计声明,重置线程计数器的函数,将线程计数器添加到总数的函数,和打印功能。
的代码是类似以下内容:
// Adding a statistic named 'counter'
// Declaration of counter
__thread int counter = 0;
int total_counter = 0;
// In reset function
counter = 0;
// In add function
total_counter += counter;
// In print function
printf("counter value is: %d\n", total_counter);
我可以看到一个宏可以在柜台做类似的声明创建:
#define STAT(name) __thread int name; \
int total_##name;
但我没有想到如何将其扩展到更新add
和reset
功能。理想情况下,我想输入诸如STAT(counter)
之类的东西,并具有用于管理统计信息的所有声明和功能。
编辑:
我已经在代码更新的统计数据宏。这样的东西,如STAT_INC(counter)
会增加本地计数器值。然后当线程完成执行时,线程本地值将被添加到整体总数中。所以每个统计的名字都很重要,这就是为什么一个数组不适合我的原因。因为真正的计数器名称是cache_hit
,比counter[2]
更有意义,我不想失去为创建的统计信息指定任意名称的能力。只是为了简化我在声明统计信息时必须编写的代码量。
使用数组(或向量,管他呢)。 – 2013-05-09 18:55:26