AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.01.2017, 16:34   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
скорее дело не в IL, а в сборщике мусора.

поддерживаю про StringBuilder.
Старый 19.01.2017, 17:24   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
скорее дело не в IL, а в сборщике мусора.
поддерживаю про StringBuilder.
Возможно и так. Но если новая строчка не создавалась бы, как указал Иван, то все было бы ок. Негде сборщику было бы затормозить процесс.
Старый 19.01.2017, 18:04   #3  
Diman is offline
Diman
Участник
Сотрудники Microsoft Dynamics
 
166 / 35 (2) +++
Регистрация: 27.06.2003
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
скорее дело не в IL, а в сборщике мусора.

поддерживаю про StringBuilder.
Поддерживаю про сборщик мусора, а также добавлю, что причиной служит то, что строки в .Net есть константа, и каждая итерация сильно нагружает память и в итоге она быстро заканчивается, запускается GC, который память освобождает и упаковывает. А вот переход на StringBuilder оправдан при большом кол-ве итераций изменений. Если посмотреть исходники StringBuilder, то там используетеся не тип string a char[], и память выделяется небольшими порциями.
Я вот все хочу сравнить производительность разных коллекций,все руки не доходят.
__________________
Sapere aude
За это сообщение автора поблагодарили: Logger (3).
Старый 19.01.2017, 20:10   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,987 / 3273 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Diman Посмотреть сообщение
Поддерживаю про сборщик мусора, а также добавлю, что причиной служит то, что строки в .Net есть константа, и каждая итерация сильно нагружает память и в итоге она быстро заканчивается, запускается GC, который память освобождает и упаковывает. ...
Да, вы правы.
Вряд ли поэтому удастся сделать быстрый += в CIL.
Получается, что как ни изворачивайся, а сложно теперь писать код одинаково быстрый и в p-code и в CIL. Ну если только TextBuffer или StringBuilder задействовать. Код по виду будет ближе к .Net а рекомендация BP использовать += вместо a=a+b теперь протухла.
Теги
.net, cil, p-code, string, бега сферических коней;, производительность

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Помогите найти справку разработчика! FrolovAndy DAX: Программирование 4 19.02.2013 21:40
Нечеткое сравнение строк Logger DAX: Программирование 7 14.10.2010 20:55
Помогите найти тему про if (recordBuffer) kashperuk DAX: Программирование 6 27.11.2008 11:25
Баг? Сравнение строк длиной более 32767 символов vallys DAX: База знаний и проекты 6 16.07.2008 12:18
Помогите найти доку vitart DAX: Администрирование 18 03.07.2003 16:10
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:22.