decimal vs double и скорость тестирования


decimal vs double и скорость тестирования
Atom
4/29/2014


На моем тестере разница по скорости тестирования в 4 раза.



Thanks:


Mikhail Sukhov

Avatar
Date: 4/29/2014
Reply


vk37 Go to
На моем тестере разница по скорости тестирования в 4 раза.


А должно быть в 5. Где-то ошибка.
Thanks:

slavon

Avatar
Date: 4/29/2014
Reply


Михаил, черноту юмора мы оценили. vk37, ну действительно, давайте по-подробнее: что, где и как тестировали?
Thanks:

vk37

Avatar
Date: 4/30/2014
Reply


slavon Go to
Михаил, черноту юмора мы оценили. vk37, ну действительно, давайте по-подробнее: что, где и как тестировали?
Тип decimal в сравнении с double значительно медленнее. Здесь, например, можно посмотреть.

Thanks:

MenDel

Avatar
Date: 5/2/2014
Reply


Немного не в тему, но
к слову о скорости,

Скажите есть ли разница в скорости в зависимости от того на чем запущен тестер HDD, SSD или флэшка?

При торговле на реале,
Если на событие NewTrades подписать 10 разных методов. Это повлияет на скорость обработки сделок или все 10 методов будут работать параллельно и скорость обработки полученных сделок не изменится?

То же самое если запущено 10 различных стратегий и в каждой еще работает стоп-лосс и тейк-профит скорость обработки получаемых сделок будет меньше, чем если 1 стратегия работает?

Скажите пожалуйста кто знает


Действительно decimal в 5 раз медленнее double
простейший тест со сложением 3 чисел с циклом на 1 млрд итераций это подтвердил
decimal 9.9035664 сек
double 1,8151038 сек
float 2,3131323 сек



Время деньги!
Надо переходить на double)
Thanks:

VassilSanych

Avatar
Date: 5/4/2014
Reply


Во-первых, decimal ширше. Надо чётко осознавать, хватит ли double.
Во-вторых, иногда в операциях с БД тип decimal - тип по умолчанию, а значит будут потери на приведение типов.
В третьих, иногда при сериализации decimal так же более родной тип.
А при вычислениях и хранении, конечно double лучше, потому что
- меньше
- оптимизирован для нынешних процессоров.
Так что всё надо проверять не простыми циклами, а в прототипах.
Thanks:

vk37

Avatar
Date: 5/4/2014
Reply


MenDel Go to
Действительно decimal в 5 раз медленнее double
простейший тест со сложением 3 чисел с циклом на 1 млрд итераций это подтвердил
decimal 9.9035664 сек
double 1,8151038 сек
float 2,3131323 сек

Наверное код не очень показательный. У меня получились такие результаты на моей машине:
decimal 00:00:00.2390504
double 00:00:00.2370485
float 00:00:00.2440493

Т.е. разницы по времени нет.

Если код поправить так:
Code
            var startTime = DateTime.Now;
            decimal a = 0;
            for (var i = 0; i <= 1000000000; i++)
            {
                a += 0.456m + 0.578m + 5.146m;
            }
            Console.WriteLine("decimal " + (DateTime.Now - startTime));

            startTime = DateTime.Now;
            double b = 0;
            for (var i = 0; i <= 1000000000; i++)
            {
                b += 0.456 + 0.578 + 5.146;
            }
            Console.WriteLine("double " + (DateTime.Now - startTime));

            startTime = DateTime.Now;
            float c = 0;
            for (var i = 0; i <= 1000000000; i++)
            {
                c += 0.456f + 0.578f + 5.146f;
            }
            Console.WriteLine("float " + (DateTime.Now - startTime));
То результат будет таким:
decimal 00:00:12.1334884
double 00:00:00.2380476
float 00:00:00.2370482

По этому тесту тип decimal в 30 раз медленнее, чем double.

Thanks:

vk37

Avatar
Date: 5/4/2014
Reply


VassilSanych Go to
Так что всё надо проверять не простыми циклами, а в прототипах.
Согласен. Но для полноты картины и простые циклы полезны.

Thanks:

Mikhail Sukhov

Avatar
Date: 5/6/2014
Reply


vk37 Go to
Но для полноты картины и простые циклы полезны.


Выражение "Полнота картины" не русско-язычное. Заимствовано из английской лексики, обозначающее увидеть всю картину в целом.

В то же самое время простые циклы показывают узкие вещи, конкретные. Что является антагонизмом "полной картины".

Так что же вы хотели в своем сообщении написать?

Если вдруг не понятно что я написал выше, то ваше выражение, что я процитировал, равносильно высказыванию (в простом приближении) "Но для определения бесконечности и конечные результаты полезны".
Thanks:

Иван З.

Avatar
Date: 5/6/2014
Reply


Иб...ть все умные какие.
vk37, эта тема обсуждалась здесь http://stocksharp.com/fo...u-double--a-nie-decimal/
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy