|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
Быстродействие double, decimal в x6419.01.2016, 11:48. Показов 9894. Ответов 106
Работаю с финансовыми данными, максимальное количество знаков после запятой - 4.
Получаю данные по DDE в формате object[][]. Тип объекта может быть string или double. Возникли следующие вопросы: 1. Арифметика double крутиться в регистрах процессора на x64, коли double 8 бит? 2. Раз уж приложение работает с финансами, и, вроде как, желательно использовать decimal, могу ли я без значительных издержек (погрешность допускается) обойтись double в угоду быстродействия? 3. Если все-таки, захочу работать с double, применение Math.Round не отнимет полученного выигрыша в производительности? 4. Как правильно задать конфигурацию решения x64? 5. Как из object, тип которого заранее известен (double), быстрее получить значение? Распаковка (double)obj? 6. Допустим, имеется класс, с полем double и в DGV отображается BindingList<SomeClass>, как заставить отображаться этот double с определенным количеством цифр после зпт? (вопрос не особо важен). 7. Какие есть способы быстро работать с decimal и конвертировать из double в decimal? 8. Ну, а так же интересуют комментарии в целом, по поводу быстродействия в данных условиях. Добавлено через 16 часов 54 минуты Сокращаю перечень вопросов до 1, 4, 8 ![]() С миру по нитке хоть собрать бы. Есть мнения хотя бы?
0
|
|
| 19.01.2016, 11:48 | |
|
Ответы с готовыми решениями:
106
Быстродействие одинаковых программ x86 или x64 Какой тип использовать для денежных коэффициентов (например процент скидки)? Decimal или Double?
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 20.01.2016, 12:49 | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 20.01.2016, 14:20 | ||
|
0
|
||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|||
| 20.01.2016, 14:42 [ТС] | |||
|
Вообще - большинство тестов и прочего - сплошная синтетика и частные случаи. На практике, я думаю, по факту уже надо смотреть. Тем не менее, в моем случае, каждые 10мсек будут полезны. Поэтому и хватаюсь за все подряд
0
|
|||
|
Master of Orion
|
|||
| 20.01.2016, 14:46 | |||
Тыц
1
|
|||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 20.01.2016, 14:54 [ТС] | |
|
Psilon, читал этот блог, пару недель назад, решил оставить на потом,
тк автор жжет ваще не по-детски, тут без бутылки вообще никак
0
|
|
| 20.01.2016, 14:58 | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 20.01.2016, 16:26 | |||
|
Добавлено через 5 минут
0
|
|||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|||
| 20.01.2016, 16:44 [ТС] | |||
|
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|
| 20.01.2016, 16:56 | |
|
0
|
|
|
Master of Orion
|
||
| 20.01.2016, 17:03 | ||
|
Добавлено через 1 минуту csc.exe не занимается оптимизациями вообще, эта работа возложена на JIT на целевой машине. И никакая априорная информация о поддерживаемых инструкциях SSE или там числе ядер не даст выигрыш, который дает тупой перебор всех возможных оптимизаций без оглядки на затрачиваемое время.
0
|
||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||
| 20.01.2016, 17:19 [ТС] | ||
|
Так как думаете, нормально, и как подчеркивает Psilon, не спеша откомпилированный в машинные команды код, медленней MSIL, прошедшего за десятки мсек через всю эту мясорубку? ![]() Добавлено через 10 минут Надеюсь довольно скоро это нововведение будет универсальным и позволит обычные приложения компилить в native. http://habrahabr.ru/company/microsoft/blog/265889/
0
|
||
|
Master of Orion
|
|
| 20.01.2016, 17:30 | |
|
Woldemar89, это старая тема, и мне она не сильно нравится, хотя это конечно лучше чем то, что у нас сейчас. Я бы предпочел то, как в андройде начиная с 5 версии делается: приложение скачивается на устройство и на нем компилируется при установке. Было бы отлично точно также делать и тут, то есть примерно то же, но не на машине разработчика, а на целевой машине пользователя. Что-то подобное происходит при установке Paint.net, но я честно говоря не лазил по их исходникам и не знаю, что и как они делают
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 20.01.2016, 17:35 | ||
|
CLRRuntime не существует. Есть CLR, в которой последняя буква и означает Runtime. JIT - это технология, ngen - это утилита, MSIL - это язык.
1
|
||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 20.01.2016, 17:36 [ТС] | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 20.01.2016, 17:45 | ||
|
0
|
||
|
Master of Orion
|
||
| 20.01.2016, 17:59 | ||
|
Shamil1, только вот JIT не использует SSE. Можно долго рассуждать о Рихтере и о том, что потенциально JIT много чего позволяет, но на практике они даже новый рюджит не смогли написать нормально, так что он оптимизирует лучше "старого" х64. И да, автоматически SSE компилятор не использует (разве что иногда, для извлечения квадратного корня и т.п, но разница там просто мизерная), а настоящий SIMD работает только в ручном режиме с соответствующим классом, только в новом фреймворке и прочее и прочее.
В мире радуг и розовых пони возможно шарп быстрее плюсов, но на практике имеем 20-50% меньшую производительность в общем случае. Я был бы очень рад, если бы шарп был такой производительный, но на практике это не так. Это не повод всем валить на плюсы, но и говорить, в стиле Рихтера, что у CLR замечательные возможности для оптимизации - возможностей практически нет. Знания о целевой архитектуре есть, а вот времени использовать эту информацию - нет.
0
|
||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 20.01.2016, 18:06 [ТС] | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||
| 20.01.2016, 19:10 | ||||
|
Добавлено через 7 минут "В общем случае (потенциально) нативный код работает медленнее (из-за отсутствия оптимизации под конкретный процессор)."
0
|
||||
|
Master of Orion
|
|||
| 20.01.2016, 21:16 | |||
![]() ОЧЕВИДНО, что когда я говорю про джит, я имею ввиду любой существующий джит для джавы/дотнета. Воображаемый джит на энергии астральных гномов сюда не входит, согласен.
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 21.01.2016, 14:57 | |||
|
А если Вы до сих пор верите в корректность своего подсчёта ("В результате 1*0.7 < 0.9*1 + 0.1*0.25."), то возьмите какую-нибудь (нормально написанную) программу, требующую оптимизации и скомпилируйте её два раза: 1. С использованием IPO и PGO, но так, чтобы она работала под любым (из актуальных) процессором. 2. Без использования IPO и PGO, но под свой процессор. И сравните скорость работы.
0
|
|||
| 21.01.2016, 14:57 | |
|
Как преобразовать Double в Decimal? Обрезать значение (усечь) decimal/double Аргумент 1 не удается преобразовать из double? в decimal
MaskedTextBox: ввод только Decimal или Double Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|