Информация об изменениях

Сообщение Re[3]: Плавающая арифметика в системных потоках от 16.04.2025 16:43

Изменено 16.04.2025 16:47 Marty

Re[3]: Плавающая арифметика в системных потоках
Здравствуйте, Евгений Музыченко, Вы писали:

Упс, сорян, я люто наврал про супер скорость cpp_dec_float, это он побыстрее моего класса в два-три раза, от встроенного double он таки сильно отличается, но деление всего в 250 раз тормознее дабла, а у меня в 2500 раз.

Но можно поменьше знаков использовать, наверное, будет пошустрее, ну, и не обязательно десятичное, мне-то надо было для самописной бухгалтерии, поэтому завязывался на десятичку, но в бусте вроде есть и без такой привязки, должно быть пошустрее


Вот результаты моих перф тестов

  Скрытый текст
Platform: x86
BCD storage type: std::basic_string

double , normal precision, normal numbers, '+' elapsed time: 1390
cpp_dec_float<50> , normal precision, normal numbers, '+' elapsed time: 11438
marty::Decimal(50) , normal precision, normal numbers, '+' elapsed time: 27750
Performance log
double : 5.01%, x 19.96
cpp_dec_float : 41.22%, x 2.43
Decimal : 100%, x 1

double , normal precision, normal numbers, '-' elapsed time: 1390
cpp_dec_float<50> , normal precision, normal numbers, '-' elapsed time: 11688
marty::Decimal(50) , normal precision, normal numbers, '-' elapsed time: 29297
Performance log
double : 4.74%, x 21.1
cpp_dec_float : 39.89%, x 2.51
Decimal : 100%, x 1

double , normal precision, normal numbers, '==' elapsed time: 1578
cpp_dec_float<50> , normal precision, normal numbers, '==' elapsed time: 5359
marty::Decimal(50) , normal precision, normal numbers, '==' elapsed time: 8047
Performance log
double : 19.61%, x 5.1
cpp_dec_float : 66.6%, x 1.50
Decimal : 100%, x 1

double , normal precision, normal numbers, '*' elapsed time: 1391
cpp_dec_float<50> , normal precision, normal numbers, '*' elapsed time: 37453
marty::Decimal(50) , normal precision, normal numbers, '*' elapsed time: 66219
Performance log
double : 2.10%, x 47.62
cpp_dec_float : 56.56%, x 1.77
Decimal : 100%, x 1

double , normal precision, normal numbers, '/' elapsed time: 1390
cpp_dec_float<50> , normal precision, normal numbers, '/' elapsed time: 292672
marty::Decimal(50) , normal precision, normal numbers, '/' elapsed time: 3434047
Performance log
double : 0.04%, x 2500
cpp_dec_float : 8.52%, x 11.74
Decimal : 100%, x 1

------------------------------
double , normal precision, accounting numbers, '+' elapsed time: 1328
cpp_dec_float<50> , normal precision, accounting numbers, '+' elapsed time: 12515
marty::Decimal(50) , normal precision, accounting numbers, '+' elapsed time: 30719
Performance log
double : 4.32%, x 23.15
cpp_dec_float : 40.74%, x 2.45
Decimal : 100%, x 1

double , normal precision, accounting numbers, '-' elapsed time: 1344
cpp_dec_float<50> , normal precision, accounting numbers, '-' elapsed time: 12859
marty::Decimal(50) , normal precision, accounting numbers, '-' elapsed time: 32610
Performance log
double : 4.12%, x 24.27
cpp_dec_float : 39.43%, x 2.54
Decimal : 100%, x 1

double , normal precision, accounting numbers, '==' elapsed time: 1500
cpp_dec_float<50> , normal precision, accounting numbers, '==' elapsed time: 5734
marty::Decimal(50) , normal precision, accounting numbers, '==' elapsed time: 8109
Performance log
double : 18.5%, x 5.41
cpp_dec_float : 70.71%, x 1.41
Decimal : 100%, x 1

double , normal precision, accounting numbers, '*' elapsed time: 1344
cpp_dec_float<50> , normal precision, accounting numbers, '*' elapsed time: 40516
marty::Decimal(50) , normal precision, accounting numbers, '*' elapsed time: 113922
Performance log
double : 1.18%, x 84.75
cpp_dec_float : 35.56%, x 2.81
Decimal : 100%, x 1

double , normal precision, accounting numbers, '/' elapsed time: 1375
cpp_dec_float<50> , normal precision, accounting numbers, '/' elapsed time: 290765
marty::Decimal(50) , normal precision, accounting numbers, '/' elapsed time: 3527235
Performance log
double : 0.04%, x 2500
cpp_dec_float : 8.24%, x 12.14
Decimal : 100%, x 1

------------------------------
double , long precision , big numbers, '+' elapsed time: 31
cpp_dec_float<1000> , long precision , big numbers, '+' elapsed time: 1781
marty::Decimal(1000) , long precision , big numbers, '+' elapsed time: 7969
Performance log
double : 0.39%, x 256.41
cpp_dec_float : 22.35%, x 4.47
Decimal : 100%, x 1

double , long precision , big numbers, '-' elapsed time: 31
cpp_dec_float<1000> , long precision , big numbers, '-' elapsed time: 1781
marty::Decimal(1000) , long precision , big numbers, '-' elapsed time: 8453
Performance log
double : 0.37%, x 270.27
cpp_dec_float : 21.07%, x 4.75
Decimal : 100%, x 1

double , long precision , big numbers, '==' elapsed time: 47
cpp_dec_float<1000> , long precision , big numbers, '==' elapsed time: 344
marty::Decimal(1000) , long precision , big numbers, '==' elapsed time: 1609
Performance log
double : 2.92%, x 34.25
cpp_dec_float : 21.38%, x 4.68
Decimal : 100%, x 1

double , long precision , big numbers, '*' elapsed time: 0
cpp_dec_float<1000> , long precision , big numbers, '*' elapsed time: 875
marty::Decimal(1000) , long precision , big numbers, '*' elapsed time: 13141
Performance log
double : 0.00761%, x 13140.60
cpp_dec_float : 6.66%, x 15.02
Decimal : 100%, x 1

double , long precision , big numbers, '/' elapsed time: 0
cpp_dec_float<1000> , long precision , big numbers, '/' elapsed time: 4656
marty::Decimal(1000) , long precision , big numbers, '/' elapsed time: 547469
Performance log
double : 0.000183%, x 546448.09
cpp_dec_float : 0.85%, x 117.65
Decimal : 100%, x 1

----------

Total time elapsed: 8601.187 seconds

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Platform: x64
BCD storage type: std::basic_string

double , normal precision, normal numbers, '+' elapsed time: 3047
cpp_dec_float<50> , normal precision, normal numbers, '+' elapsed time: 10203
marty::Decimal(50) , normal precision, normal numbers, '+' elapsed time: 23735
Performance log
double : 12.84%, x 7.79
cpp_dec_float : 42.99%, x 2.33
Decimal : 100%, x 1

double , normal precision, normal numbers, '-' elapsed time: 3047
cpp_dec_float<50> , normal precision, normal numbers, '-' elapsed time: 10422
marty::Decimal(50) , normal precision, normal numbers, '-' elapsed time: 25421
Performance log
double : 11.99%, x 8.34
cpp_dec_float : 41%, x 2.44
Decimal : 100%, x 1

double , normal precision, normal numbers, '==' elapsed time: 3079
cpp_dec_float<50> , normal precision, normal numbers, '==' elapsed time: 5703
marty::Decimal(50) , normal precision, normal numbers, '==' elapsed time: 9047
Performance log
double : 34.03%, x 2.94
cpp_dec_float : 63.04%, x 1.59
Decimal : 100%, x 1

double , normal precision, normal numbers, '*' elapsed time: 3031
cpp_dec_float<50> , normal precision, normal numbers, '*' elapsed time: 13250
marty::Decimal(50) , normal precision, normal numbers, '*' elapsed time: 56094
Performance log
double : 5.40%, x 18.52
cpp_dec_float : 23.62%, x 4.23
Decimal : 100%, x 1

double , normal precision, normal numbers, '/' elapsed time: 3031
cpp_dec_float<50> , normal precision, normal numbers, '/' elapsed time: 97687
marty::Decimal(50) , normal precision, normal numbers, '/' elapsed time: 2659094
Performance log
double : 0.11%, x 909.09
cpp_dec_float : 3.67%, x 27.25
Decimal : 100%, x 1

------------------------------
double , normal precision, accounting numbers, '+' elapsed time: 3047
cpp_dec_float<50> , normal precision, accounting numbers, '+' elapsed time: 11203
marty::Decimal(50) , normal precision, accounting numbers, '+' elapsed time: 26594
Performance log
double : 11.46%, x 8.73
cpp_dec_float : 42.13%, x 2.37
Decimal : 100%, x 1

double , normal precision, accounting numbers, '-' elapsed time: 3047
cpp_dec_float<50> , normal precision, accounting numbers, '-' elapsed time: 11531
marty::Decimal(50) , normal precision, accounting numbers, '-' elapsed time: 27812
Performance log
double : 10.96%, x 9.12
cpp_dec_float : 41.46%, x 2.41
Decimal : 100%, x 1

double , normal precision, accounting numbers, '==' elapsed time: 3063
cpp_dec_float<50> , normal precision, accounting numbers, '==' elapsed time: 6125
marty::Decimal(50) , normal precision, accounting numbers, '==' elapsed time: 9078
Performance log
double : 33.74%, x 2.96
cpp_dec_float : 67.47%, x 1.48
Decimal : 100%, x 1

double , normal precision, accounting numbers, '*' elapsed time: 3047
cpp_dec_float<50> , normal precision, accounting numbers, '*' elapsed time: 14281
marty::Decimal(50) , normal precision, accounting numbers, '*' elapsed time: 94094
Performance log
double : 3.24%, x 30.86
cpp_dec_float : 15.18%, x 6.59
Decimal : 100%, x 1

double , normal precision, accounting numbers, '/' elapsed time: 3031
cpp_dec_float<50> , normal precision, accounting numbers, '/' elapsed time: 98906
marty::Decimal(50) , normal precision, accounting numbers, '/' elapsed time: 2749797
Performance log
double : 0.11%, x 909.09
cpp_dec_float : 3.6%, x 27.78
Decimal : 100%, x 1

------------------------------
double , long precision , big numbers, '+' elapsed time: 78
cpp_dec_float<1000> , long precision , big numbers, '+' elapsed time: 1469
marty::Decimal(1000) , long precision , big numbers, '+' elapsed time: 5969
Performance log
double : 1.31%, x 76.34
cpp_dec_float : 24.61%, x 4.06
Decimal : 100%, x 1

double , long precision , big numbers, '-' elapsed time: 62
cpp_dec_float<1000> , long precision , big numbers, '-' elapsed time: 1485
marty::Decimal(1000) , long precision , big numbers, '-' elapsed time: 6328
Performance log
double : 0.98%, x 102.04
cpp_dec_float : 23.47%, x 4.26
Decimal : 100%, x 1

double , long precision , big numbers, '==' elapsed time: 78
cpp_dec_float<1000> , long precision , big numbers, '==' elapsed time: 281
marty::Decimal(1000) , long precision , big numbers, '==' elapsed time: 1391
Performance log
double : 5.61%, x 17.83
cpp_dec_float : 20.20%, x 4.95
Decimal : 100%, x 1

double , long precision , big numbers, '*' elapsed time: 0
cpp_dec_float<1000> , long precision , big numbers, '*' elapsed time: 500
marty::Decimal(1000) , long precision , big numbers, '*' elapsed time: 7562
Performance log
double : 0.01%, x 10000
cpp_dec_float : 6.61%, x 15.13
Decimal : 100%, x 1

double , long precision , big numbers, '/' elapsed time: 0
cpp_dec_float<1000> , long precision , big numbers, '/' elapsed time: 2579
marty::Decimal(1000) , long precision , big numbers, '/' elapsed time: 381062
Performance log
double : 0.000262%, x 381679.39
cpp_dec_float : 0.68%, x 147.06
Decimal : 100%, x 1

----------

Total time elapsed: 6399.391 seconds

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Re[3]: Плавающая арифметика в системных потоках
Здравствуйте, Евгений Музыченко, Вы писали:

Упс, сорян, я люто наврал про супер скорость cpp_dec_float, это он побыстрее моего класса в два-три раза, от встроенного double он таки сильно отличается, но деление всего в 250 раз тормознее дабла, а у меня в 2500 раз.

Но можно поменьше знаков использовать, наверное, будет пошустрее, ну, и не обязательно десятичное, мне-то надо было для самописной бухгалтерии, поэтому завязывался на десятичку, но в бусте вроде есть и без такой привязки, должно быть пошустрее


Вот результаты моих перф тестов

  Скрытый текст
Platform: x86
BCD storage type: std::basic_string

double               , normal precision,  normal numbers, '+'  elapsed time: 1390
cpp_dec_float<50>    , normal precision,  normal numbers, '+'  elapsed time: 11438
marty::Decimal(50)   , normal precision,  normal numbers, '+'  elapsed time: 27750
  Performance log
    double           : 5.01%, x 19.96
    cpp_dec_float    : 41.22%, x 2.43
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '-'  elapsed time: 1390
cpp_dec_float<50>    , normal precision,  normal numbers, '-'  elapsed time: 11688
marty::Decimal(50)   , normal precision,  normal numbers, '-'  elapsed time: 29297
  Performance log
    double           : 4.74%, x 21.1
    cpp_dec_float    : 39.89%, x 2.51
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '==' elapsed time: 1578
cpp_dec_float<50>    , normal precision,  normal numbers, '==' elapsed time: 5359
marty::Decimal(50)   , normal precision,  normal numbers, '==' elapsed time: 8047
  Performance log
    double           : 19.61%, x 5.1
    cpp_dec_float    : 66.6%, x 1.50
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '*'  elapsed time: 1391
cpp_dec_float<50>    , normal precision,  normal numbers, '*'  elapsed time: 37453
marty::Decimal(50)   , normal precision,  normal numbers, '*'  elapsed time: 66219
  Performance log
    double           : 2.10%, x 47.62
    cpp_dec_float    : 56.56%, x 1.77
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '/'  elapsed time: 1390
cpp_dec_float<50>    , normal precision,  normal numbers, '/'  elapsed time: 292672
marty::Decimal(50)   , normal precision,  normal numbers, '/'  elapsed time: 3434047
  Performance log
    double           : 0.04%, x 2500
    cpp_dec_float    : 8.52%, x 11.74
    Decimal          : 100%, x 1

------------------------------
double               , normal precision,  accounting numbers, '+'  elapsed time: 1328
cpp_dec_float<50>    , normal precision,  accounting numbers, '+'  elapsed time: 12515
marty::Decimal(50)   , normal precision,  accounting numbers, '+'  elapsed time: 30719
  Performance log
    double           : 4.32%, x 23.15
    cpp_dec_float    : 40.74%, x 2.45
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '-'  elapsed time: 1344
cpp_dec_float<50>    , normal precision,  accounting numbers, '-'  elapsed time: 12859
marty::Decimal(50)   , normal precision,  accounting numbers, '-'  elapsed time: 32610
  Performance log
    double           : 4.12%, x 24.27
    cpp_dec_float    : 39.43%, x 2.54
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '==' elapsed time: 1500
cpp_dec_float<50>    , normal precision,  accounting numbers, '==' elapsed time: 5734
marty::Decimal(50)   , normal precision,  accounting numbers, '==' elapsed time: 8109
  Performance log
    double           : 18.5%, x 5.41
    cpp_dec_float    : 70.71%, x 1.41
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '*'  elapsed time: 1344
cpp_dec_float<50>    , normal precision,  accounting numbers, '*'  elapsed time: 40516
marty::Decimal(50)   , normal precision,  accounting numbers, '*'  elapsed time: 113922
  Performance log
    double           : 1.18%, x 84.75
    cpp_dec_float    : 35.56%, x 2.81
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '/'  elapsed time: 1375
cpp_dec_float<50>    , normal precision,  accounting numbers, '/'  elapsed time: 290765
marty::Decimal(50)   , normal precision,  accounting numbers, '/'  elapsed time: 3527235
  Performance log
    double           : 0.04%, x 2500
    cpp_dec_float    : 8.24%, x 12.14
    Decimal          : 100%, x 1

------------------------------
double               , long precision  ,  big numbers, '+'  elapsed time: 31
cpp_dec_float<1000>  , long precision  ,  big numbers, '+'  elapsed time: 1781
marty::Decimal(1000) , long precision  ,  big numbers, '+'  elapsed time: 7969
  Performance log
    double           : 0.39%, x 256.41
    cpp_dec_float    : 22.35%, x 4.47
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '-'  elapsed time: 31
cpp_dec_float<1000>  , long precision  ,  big numbers, '-'  elapsed time: 1781
marty::Decimal(1000) , long precision  ,  big numbers, '-'  elapsed time: 8453
  Performance log
    double           : 0.37%, x 270.27
    cpp_dec_float    : 21.07%, x 4.75
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '==' elapsed time: 47
cpp_dec_float<1000>  , long precision  ,  big numbers, '==' elapsed time: 344
marty::Decimal(1000) , long precision  ,  big numbers, '==' elapsed time: 1609
  Performance log
    double           : 2.92%, x 34.25
    cpp_dec_float    : 21.38%, x 4.68
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '*'  elapsed time: 0
cpp_dec_float<1000>  , long precision  ,  big numbers, '*'  elapsed time: 875
marty::Decimal(1000) , long precision  ,  big numbers, '*'  elapsed time: 13141
  Performance log
    double           : 0.00761%, x 13140.60
    cpp_dec_float    : 6.66%, x 15.02
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '/'  elapsed time: 0
cpp_dec_float<1000>  , long precision  ,  big numbers, '/'  elapsed time: 4656
marty::Decimal(1000) , long precision  ,  big numbers, '/'  elapsed time: 547469
  Performance log
    double           : 0.000183%, x 546448.09
    cpp_dec_float    : 0.85%, x 117.65
    Decimal          : 100%, x 1

----------

Total time elapsed: 8601.187 seconds

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Platform: x64
BCD storage type: std::basic_string

double               , normal precision,  normal numbers, '+'  elapsed time: 3047
cpp_dec_float<50>    , normal precision,  normal numbers, '+'  elapsed time: 10203
marty::Decimal(50)   , normal precision,  normal numbers, '+'  elapsed time: 23735
  Performance log
    double           : 12.84%, x 7.79
    cpp_dec_float    : 42.99%, x 2.33
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '-'  elapsed time: 3047
cpp_dec_float<50>    , normal precision,  normal numbers, '-'  elapsed time: 10422
marty::Decimal(50)   , normal precision,  normal numbers, '-'  elapsed time: 25421
  Performance log
    double           : 11.99%, x 8.34
    cpp_dec_float    : 41%, x 2.44
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '==' elapsed time: 3079
cpp_dec_float<50>    , normal precision,  normal numbers, '==' elapsed time: 5703
marty::Decimal(50)   , normal precision,  normal numbers, '==' elapsed time: 9047
  Performance log
    double           : 34.03%, x 2.94
    cpp_dec_float    : 63.04%, x 1.59
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '*'  elapsed time: 3031
cpp_dec_float<50>    , normal precision,  normal numbers, '*'  elapsed time: 13250
marty::Decimal(50)   , normal precision,  normal numbers, '*'  elapsed time: 56094
  Performance log
    double           : 5.40%, x 18.52
    cpp_dec_float    : 23.62%, x 4.23
    Decimal          : 100%, x 1

double               , normal precision,  normal numbers, '/'  elapsed time: 3031
cpp_dec_float<50>    , normal precision,  normal numbers, '/'  elapsed time: 97687
marty::Decimal(50)   , normal precision,  normal numbers, '/'  elapsed time: 2659094
  Performance log
    double           : 0.11%, x 909.09
    cpp_dec_float    : 3.67%, x 27.25
    Decimal          : 100%, x 1

------------------------------
double               , normal precision,  accounting numbers, '+'  elapsed time: 3047
cpp_dec_float<50>    , normal precision,  accounting numbers, '+'  elapsed time: 11203
marty::Decimal(50)   , normal precision,  accounting numbers, '+'  elapsed time: 26594
  Performance log
    double           : 11.46%, x 8.73
    cpp_dec_float    : 42.13%, x 2.37
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '-'  elapsed time: 3047
cpp_dec_float<50>    , normal precision,  accounting numbers, '-'  elapsed time: 11531
marty::Decimal(50)   , normal precision,  accounting numbers, '-'  elapsed time: 27812
  Performance log
    double           : 10.96%, x 9.12
    cpp_dec_float    : 41.46%, x 2.41
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '==' elapsed time: 3063
cpp_dec_float<50>    , normal precision,  accounting numbers, '==' elapsed time: 6125
marty::Decimal(50)   , normal precision,  accounting numbers, '==' elapsed time: 9078
  Performance log
    double           : 33.74%, x 2.96
    cpp_dec_float    : 67.47%, x 1.48
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '*'  elapsed time: 3047
cpp_dec_float<50>    , normal precision,  accounting numbers, '*'  elapsed time: 14281
marty::Decimal(50)   , normal precision,  accounting numbers, '*'  elapsed time: 94094
  Performance log
    double           : 3.24%, x 30.86
    cpp_dec_float    : 15.18%, x 6.59
    Decimal          : 100%, x 1

double               , normal precision,  accounting numbers, '/'  elapsed time: 3031
cpp_dec_float<50>    , normal precision,  accounting numbers, '/'  elapsed time: 98906
marty::Decimal(50)   , normal precision,  accounting numbers, '/'  elapsed time: 2749797
  Performance log
    double           : 0.11%, x 909.09
    cpp_dec_float    : 3.6%, x 27.78
    Decimal          : 100%, x 1

------------------------------
double               , long precision  ,  big numbers, '+'  elapsed time: 78
cpp_dec_float<1000>  , long precision  ,  big numbers, '+'  elapsed time: 1469
marty::Decimal(1000) , long precision  ,  big numbers, '+'  elapsed time: 5969
  Performance log
    double           : 1.31%, x 76.34
    cpp_dec_float    : 24.61%, x 4.06
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '-'  elapsed time: 62
cpp_dec_float<1000>  , long precision  ,  big numbers, '-'  elapsed time: 1485
marty::Decimal(1000) , long precision  ,  big numbers, '-'  elapsed time: 6328
  Performance log
    double           : 0.98%, x 102.04
    cpp_dec_float    : 23.47%, x 4.26
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '==' elapsed time: 78
cpp_dec_float<1000>  , long precision  ,  big numbers, '==' elapsed time: 281
marty::Decimal(1000) , long precision  ,  big numbers, '==' elapsed time: 1391
  Performance log
    double           : 5.61%, x 17.83
    cpp_dec_float    : 20.20%, x 4.95
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '*'  elapsed time: 0
cpp_dec_float<1000>  , long precision  ,  big numbers, '*'  elapsed time: 500
marty::Decimal(1000) , long precision  ,  big numbers, '*'  elapsed time: 7562
  Performance log
    double           : 0.01%, x 10000
    cpp_dec_float    : 6.61%, x 15.13
    Decimal          : 100%, x 1

double               , long precision  ,  big numbers, '/'  elapsed time: 0
cpp_dec_float<1000>  , long precision  ,  big numbers, '/'  elapsed time: 2579
marty::Decimal(1000) , long precision  ,  big numbers, '/'  elapsed time: 381062
  Performance log
    double           : 0.000262%, x 381679.39
    cpp_dec_float    : 0.68%, x 147.06
    Decimal          : 100%, x 1

----------

Total time elapsed: 6399.391 seconds

------------------------------------------------------------------------------------------------------------------------------------------------------------------------