У меня есть синглтон, который стоит дорого инициализировать:
struct X {...};
const X&
get_X()
{
static const X x = init_X();
return x;
}
В первый раз, когда вызывается get_X()
, для инициализации функции-local static может потребоваться сотни миллисекунд. Но после этого все, что мне нужно сделать с X
, относительно быстро:
get_X().find_something_for_me(); // expensive if this is the first call
get_X().find_something_for_me(); // now fast
Как я могу свести к минимуму большую задержку при первом вызове get_X()
? У меня много ядер...