什么是HAVE_PSI_INTERFACE宏用于?

时间:2013-08-05 14:01:41

标签: mysql

我一直在阅读MySQL 5.5的源代码,并对宏HAVE_PSI_INTERFACE感到困惑,它出现在整个项目的许多源文件中。

例如,在源文件storage / example / ha_example.cc中,有以下代码:

#ifdef HAVE_PSI_INTERFACE
static PSI_mutex_key ex_key_mutex_example, ex_key_mutex_EXAMPLE_SHARE_mutex;

static PSI_mutex_info all_example_mutexes[]=
{
  { &ex_key_mutex_example, "example", PSI_FLAG_GLOBAL},
  { &ex_key_mutex_EXAMPLE_SHARE_mutex, "EXAMPLE_SHARE::mutex", 0}
};

static void init_example_psi_keys()
{
  const char* category= "example";
  int count;

  if (PSI_server == NULL)
    return;

  count= array_elements(all_example_mutexes);
  PSI_server->register_mutex(category, all_example_mutexes, count);
}
#endif

那么HAVE_PSI_INTERFACE意味着什么?具体来说,PSI代表什么?什么是用于?

的宏HAVE_PSI_INTERFACE

感谢。

1 个答案:

答案 0 :(得分:3)

PSI代表:性能架构检测接口。

您可以找到psi.h文件here(带注释)