LINUX.ORG.RU

История изменений

Исправление AntonI, (текущая версия) :

1,2 - не, обычно просто время меряю, масштабируя если надо и предприняв меры чтобы компилятор не выкинул код 3 - да 4 - да, графики не рисую 5 - редко

спасибо, принято

сугубо математического, формульного вида функции которые сгружаются в оде солвер (если это моделирование), а массивы обычно в один уровень косвенности ( обработка сигналов)

сравните

... data[i].a*data[i].b+data[i].c ...

с

cell_t &C = data[i];
... C.a*C.b+C.c ...

только поточно безопасные дорогие

WTF «дорогие» в Вашем понимании? В моем понимании вот это

std::shared_ptr<A> ptr.reset(...); 
// или
std::shared_ptr<A> ptr = ...;

значительно дороже чем вот это

A* ptr = ...

потому что там лишние манипуляции со счетчиком как минимум. Я бы не стал бездумно пихать такое во все места. Где то это бывает оправдано конечно, чаще нет.

Исходная версия AntonI, :

1,2 - не, обычно просто время меряю, масштабируя если надо и предприняв меры чтобы компилятор не выкинул код 3 - да 4 - да, графики не рисую 5 - редко

спасибо, принято

сугубо математического, формульного вида функции которые сгружаются в оде солвер (если это моделирование), а массивы обычно в один уровень косвенности ( обработка сигналов)

сравните

... data[i].a*data[i].b+data[i].c ...

с

cell_t &C = data[i];
... C.a*C.b+C.c ...

только поточно безопасные дорогие

WTF «дорогие» в Вашем понимании? В моем понимании вот это

std::shared_ptr<A> ptr.reset(...)

значительно дороже чем вот это

A* ptr = ...

потому что там лишний инкремент счетчика как минимум. Я бы не стал бездумно пихать такое во все места. Где то это бывает оправдано конечно, чаще нет.