2014-01-24 2 views
5

Я пытаюсь оценить производительность процессора. У меня есть Intel (R) Xeon (R) CPU E5-1650 v2 @ 3.50GHz и побежал следующую команду: openssl speed rsa -multi 12 2>&1 |tee openssl-log.txt и получил следующий результат:Интерпретация openssl скорости вывода для rsa с несколькими опциями

    sign verify sign/s verify/s 
rsa 512 bits 0.000008s 0.000001s 118050.6 1200000.0 
rsa 1024 bits 0.000038s 0.000002s 26098.7 451567.0 
rsa 2048 bits 0.000239s 0.000007s 4183.6 135606.3 
rsa 4096 bits 0.001713s 0.000028s 583.7 35778.4 

Может кто-то пожалуйста, помогите мне понять выход? Что означает знак и проверка столбца? Документы, как представляется, не объясняют многое: https://www.openssl.org/docs/apps/speed.html

Спасибо заранее.

ответ

5

Код для теста скорости находится в <openssl>/apps/speed.c.

-multi - это переключатель для нескольких эталонных тестов параллельно, а не умножений (чтобы устранить всю путаницу). Смотрите комментарии вокруг линии 1145:

#ifndef NO_FORK 
    BIO_printf(bio_err,"-multi n  run n benchmarks in parallel.\n"); 
#endif 

Что означает знак колонки и проверить, имеет в виду?

Подпишите и проверьте, что они говорят. Они выполняют операцию подписи и проверяют работу с различными модулями RSA.

Знаки/Подтверждения/s являются инверсиями знака и подтверждения. I.e., 1/0.000008s => 125 000 знаков в секунду.

Вот код для печати отчета, который вы видите. Она начинается вокруг линии 2450:

#ifndef OPENSSL_NO_RSA 
    j=1; 
    for (k=0; k<RSA_NUM; k++) 
     { 
     if (!rsa_doit[k]) continue; 
     if (j && !mr) 
      { 
      printf("%18ssign verify sign/s verify/s\n"," "); 
      j=0; 
      } 
     if(mr) 
      fprintf(stdout,"+F2:%u:%u:%f:%f\n", 
       k,rsa_bits[k],rsa_results[k][0], 
       rsa_results[k][1]); 
     else 
      fprintf(stdout,"rsa %4u bits %8.6fs %8.6fs %8.1f %8.1f\n", 
       rsa_bits[k],rsa_results[k][0],rsa_results[k][1], 
       1.0/rsa_results[k][0],1.0/rsa_results[k][1]); 
     } 
#endif 

Нахождение кода для выполнения знака и проверки остается в качестве упражнения для читателя;)


имеют Intel (R) Xeon (R) CPU E5-1650 v2 @ 3.50GHz

Просто велосипед линять, но обязательно config с enable-ec_nistp_64_gcc_128, если вы используете современный GCC. Использование ec_nistp_64_gcc_128 ускорит некоторые операции, такие как операция DH, на 2x или 4x.

Вам нужен современный GCC для __uint128_t. Configure не может определить, поддерживает ли компилятор __uint128_t, поэтому он оставляет ec_nistp_64_gcc_128 отключенным.

Смежные вопросы