TGViewer
C/C++ Development | YeaHub C/C++ Development | YeaHub @yeahub_c_development · 741 subscribers
Post #196 432
#полезное
🥺 Сегодня получил интересный вопрос: что быстрее —
n++, ++n или n + 1 ?

Ответ: n++ читает стек 3 раза, в то время как ++n и n + 1 — 4 раза.

Тесты были проведены на следующем коде (смотри фото):

++n и n + 1

Для dummy = ++n и n = n + 1; dummy = n происходит следующее:

> n инкрементируется на стеке
> значение n загружается в регистр
> регистр сохраняется в dummy на стеке

n++

Для dummy = n++ происходит следующее:

> n загружается в регистр-1
> регистр-1 инкрементируется и результат сохраняется в регистр-2
> регистр-2 сохраняется обратно на стек (обновлённое значение n)
> регистр-1 сохраняется на стек в dummy (исходное значение n)

Может показаться, что код для n++ содержит больше инструкций и поэтому должен быть медленнее, но это не так.

На практике не существует такого понятия, как «инкремент на стеке» — значение фактически загружается в процессор, инкрементируется там, а затем записывается обратно.

Если посчитать обращения к стеку (чтения и записи):

> ++n и n + 1: чтение, запись, чтение, запись — 4 обращения к стеку

> n++: чтение, запись, запись — 3 обращения к стеку

Поскольку чтение из регистра значительно быстрее, чем из стека, это делает n++ более быстрым вариантом.

👉Новости 👉База вопросов
  • 👍 1
More from @yeahub_c_development
  1. Oct 12, 2026#Собес #heap #stack #memory 🤔 Где будут располагаться переменные типа массив и map — на к…
  2. Oct 9, 2026#video #архитектура 📚 Road to Highload: видеопроект о проектировании архитектуры высокона…
  3. Oct 8, 2026#Собес #Docker_Registry #container_registry #Docker_Hub 🤔 Что такое Docker Registry и для…
  4. Oct 7, 2026#Собес #stack #heap #memory_management 🤔 Как отличается время жизни объектов в стеке и ку…
  5. Oct 5, 2026#Собес #stl #containers #algorithms 🤔 Что такое STL в C++? 💬 Кратко: STL (Standard Templ…
  6. Oct 2, 2026#trainer #tutorials #exercise 📚 W3schools На сайте представлены интерактивные уроки и спр…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →