Загрузка...

Twój C++ robi TRZY pętle zamiast JEDNEJ? #cplusplus#cpp #programowaniedlapoczatkujacych #ai #tech

Pisząc a + b + c z klasycznym operatorem plus, kompilator tworzy dwa tymczasowe wektory i trzy osobne pętle. Dwie zbędne alokacje pamięci. Przy milionie elementów: dramat wydajnościowy.
Rozwiązanie:
Expression Templates zmieniają zasady gry. Operator plus nie liczy wyniku: buduje OPIS operacji. Typ wyrażenia to zagnieżdżony szablon: VecSum w VecSum w VecSum. Kompilator widzi całą strukturę i generuje JEDNĄ pętlę: result[i] = a[i] + b[i] + c[i]. Zero tymczasowych alokacji.
Puenta:
Eigen, Blitz++, Boost.uBLAS — każda poważna biblioteka matematyczna w C++ to robi. Lazy evaluation to nie lenistwo — to mądrość kompilatora.

Obserwuj, jeśli chcesz poznać więcej trików wydajnościowych w C++.
#cpp #cplusplus #programming #performance #optimization #expressiontemplates #moderncpp #coding #tech

Видео Twój C++ robi TRZY pętle zamiast JEDNEJ? #cplusplus#cpp #programowaniedlapoczatkujacych #ai #tech канала classcyber
Яндекс.Метрика
Все заметки Новая заметка Страницу в заметки
Страницу в закладки Мои закладки
На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.
О CookiesНапомнить позжеПринять