Rand() % 256 против rand() и 0xFF, чья производительность лучше?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Rand() % 256 против rand() и 0xFF, чья производительность лучше?

Сообщение Anonymous »

Мне было интересно, для сценария, где rand() достаточно, т. е. нет необходимости использовать mt19937 и т. д., следует ли предпочесть rand() % range или rand() & range?< /p>
Пытаясь разобраться в этом, я провел простой тест и обнаружил, что схема AND стабильно быстрее схемы MOD в 1,2 раза. Это разумная приблизительная цифра? зависит ли это от платформы/оборудования/языка/и т. д.?
Код контрольного теста вставлен ниже:
#include
#include
#include

void timer( void(*func)() )
{
LARGE_INTEGER frequency; // ticks per second
LARGE_INTEGER t1, t2; // ticks
double elapsedTime;

// get ticks per second
QueryPerformanceFrequency(&frequency);

// start timer
QueryPerformanceCounter(&t1);

// do something
func();

// stop timer
QueryPerformanceCounter(&t2);

// compute and print the elapsed time in millisec
elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
printf("%f ms.\n", elapsedTime);
}

void testMOD()
{

volatile int arr[256] = { 0 };
for (int i = 0; i < 65535; i++) {
int idx = i % 256;
arr[idx] += int( rand() % 255 );
}
}

void testAND()
{
volatile int arr[256] = { 0 };
for (int i = 0; i < 65535; i++) {
int idx = i % 256;
arr[idx] += int(rand() & 0xFF);
}
}

int main(void)
{
printf("Testing MOD...\n");
timer(&testMOD);
printf("Testing AND...\n");
timer(&testAND);
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -is-better
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Производительность Clang's _bitint (256) против Boost Multipricision int256_t
    Anonymous » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Невозможно воспроизвести эффект mallopt(M_PERTURB, 256) с MALLOC_PERTURB_=256.
    Anonymous » » в форуме C++
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Ошибка EVP_DigestVerifyFinal — ECDSA P-256/SHA-256 с OpenSSL (Libcrypto)
    Anonymous » » в форуме C++
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Ошибка EVP_DigestVerifyFinal — ECDSA P-256/SHA-256 с OpenSSL (Libcrypto)
    Anonymous » » в форуме C++
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • ValueError:Tensor("входные данные:0", shape=(None, 256, 256, 3), dtype=uint8)
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»