Производительность между локальным потоком и выделенной переменной стека

static const char* objToStr(Obj o)
{
static __thread char s[64];
snprintf(s, sizeof(s), "Obj: ...", ...);
return s;
}

static const char* objToStr2(Obj o, char* s, size_t len)
{
snprintf(s, len, "Obj: ...", ...);
}

int main()
{
Obj o;
...
const char* s1 = objToStr(o);

char buf[64];
const char* s2 = objToStr2(o, s2, sizeof(buf));
}

Просто интересно, потому что objToStr синтетически должен быть проще в использовании, и из моего базового исследования там локальное хранилище потоков в gcc встроено и не должно само по себе снижать производительность. Единственный недостаток, который я могу придумать, заключается в том, что локальность кэша objToStr2 будет лучше, чем локальный случай потока.

Есть еще мысли?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]