Мемсет с ходу - PullRequest
       84

Мемсет с ходу

0 голосов
/ 28 февраля 2011

С OpenGL, во многих случаях, когда необходимо повысить эффективность данных для повышения эффективности.например, структура памяти будет vertex-color-normal-vertex-color-normal ... и т.д.Вариант memset (то есть без использования цикла).

Также ставит вопрос, существует ли такая вещь, как циклический набор записей памяти?Например, в массиве цветов, состоящем из четырех чисел с плавающей точкой, установите для каждого из них определенный цвет.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Просто используйте цикл. В memset нет ничего волшебного, внутренне он просто использует цикл, он может быть слегка оптимизирован на одних и тех же компиляторах для очистки 64 бит за раз, если используется с 0, но он не устанавливает блок памяти в одной инструкции

1 голос
/ 28 февраля 2011

Я бы просто пошел с петлей. memset () выполняет несколько небольших оптимизаций, чтобы записать несколько байтов за итерацию, поэтому вы можете посмотреть, как работает сама функция memset (), и посмотреть, применимы ли такие виды оптимизации к вашему коду. Но, в конце концов, это просто петля.

Вот memset () исходный код - довольно читабельный, хотя вам придется выкопать все определения типов и макросы, чтобы точно понять, как происходит оптимизация.

...