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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.02.2017, 16:53   #12  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,996 / 3293 (117) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Кстати, упаковка таким способом
X++:
con = [buffer];
buffer = conPeek(con, 1);
[buffer] = con;
Также имеет упомянутые проблемы. Поэтому кучу старого кода при переводе на 12-ю надо перепроверять.

Касательно использования листов и мапов мой коллега еще одну интересную особенность нашел:

Если у нас есть буфер в котором есть куча длинных строковых полей (например, текстовые поля по 250-1000 символов), в которых значение пустое или записана короткая строка, то буфер в памяти занимает все запланированное место. Т.е. поле имеет длину 1000 символов, там хранится строка из 10 символов, то памяти под хранение все равно отведено 1000 символов. И это же верно при сохранении буфера в map. Поэтому если в мапах кешируем много записей у которых куча строковых полей, то они могут сожрать неожиданно много памяти.

Чтобы такого не происходило, можно в мапе хранить контейнеры в которых упакованы буферы. Память существенно экономится. (Все это проверено на 2009-й аксапте. В 2012-й не перепроверяли)

Последний раз редактировалось Logger; 15.02.2017 в 16:58.
Теги
buf2con, con2buf

 


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

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

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