LINUX.ORG.RU

Влияние проверки условия для выполнения функции на производительность.

 


0

1

Допустим TRACE() миллионы раз в секунду проверяет наличие переменной WINEDEBUG=d3d.

Это сильно отъедает процессорное время?

HRESULT CDECL wined3d_device_get_ps_consts_f(const struct wined3d_device *device,
        UINT start_register, float *constants, UINT vector4f_count)
{
    const struct wined3d_d3d_info *d3d_info = &device->adapter->d3d_info;
    int count = min(vector4f_count, d3d_info->limits.ps_uniform_count - start_register);

    TRACE("device %p, start_register %u, constants %p, vector4f_count %u.\n",
            device, start_register, constants, vector4f_count);

    if (!constants || count < 0)
        return WINED3DERR_INVALIDCALL;

    memcpy(constants, &device->state.ps_consts_f[start_register * 4], count * sizeof(float) * 4);

    return WINED3D_OK;
}

branch predictor будет правильно переход предскаывать и никаких проблем не будет.

dimon555 ★★★★★ ()

Препроцессором это сделать нельзя?

#ifdef WINEDEBUG && WINEDEBUG==d3d
#define TRACE(x) printf(...)
#else
#define TRACE(x)
#endif
anonymous ()

Вижу Си без крестов, вижу оффтопик. WTF?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.