cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
89 stars 0 forks source link

атрибут заменяющий реализацию benchmark::DoNotOptimize(..) #518

Open gleb-kov opened 2 years ago

gleb-kov commented 2 years ago

<Описание вашей идеи> Для бенчмаркинга используют функции clobber и escape (https://youtu.be/nXaxk27zwlk?t=2441). В актуальном google benchmark это функции Clobber и DoNotOptimize. Если Clobber получил адекватную реализацию с с++11 через atomic_signal_fence, то DoNotOptimize все еще остается compiler-specific asm кодом.

<Примеры, где ваша идея будет полезна. Чем больше примеров и чем большую аудиторию они охватывают - тем лучше>

<Код c реализацией вашей идеи, если есть>

Полезные ссылки: