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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.10.2012, 13:05   #8  
McArrow is offline
McArrow
Участник
 
45 / 38 (2) +++
Регистрация: 18.05.2009
При хранении в Map'е контейнеров, по моим измерениям, имеется значительное преимущество в производительности.

X++:
static void MDL_testMapArray(Args _args)
{
    Array array;
    int i, key;
    Map map = new Map(Types::Integer, Types::Class);
    MapEnumerator me;
    TimeOfDay startTime;

    int getKey()
    {
        return xGlobal::randomPositiveInt32();
    }
    int getValue()
    {
        return xGlobal::randomPositiveInt32();
    }
;
    setprefix('Array class в Map');
    startTime = timenow();
    for (i = 1; i <= 10000; i ++)
    {
        array = new Array(Types::Integer);
        array.value( 1, getValue());
        array.value( 2, getValue());
        array.value( 3, getValue());
        array.value( 4, getValue());
        array.value( 5, getValue());
        array.value( 6, getValue());
        array.value( 7, getValue());
        array.value( 8, getValue());
        array.value( 9, getValue());
        array.value(10, getValue());
        map.insert(getKey(), array);
    }
    me = map.getEnumerator();
    while (me.moveNext())
    {
        key = me.currentKey();
        array = me.currentValue();
    }
    info(strfmt('Выполнено за %1 сек.', timenow() - startTime));
}
X++:
static void MDL_testMapCon(Args _args)
{
    container value;
    int i, key;
    Map map = new Map(Types::Integer, Types::Container);
    MapEnumerator me;
    TimeOfDay startTime;

    int getKey()
    {
        return xGlobal::randomPositiveInt32();
    }
    int getValue()
    {
        return xGlobal::randomPositiveInt32();
    }
;
    setprefix('Container в Map');
    startTime = timenow();
    for (i = 1; i <= 10000; i ++)
    {
        value = [getValue(), getValue(), getValue(), getValue(), getValue(), getValue(), getValue(), getValue(), getValue(), getValue()];
        map.insert(getKey(), value);
    }
    me = map.getEnumerator();
    while (me.moveNext())
    {
        key = me.currentKey();
        value = me.currentValue();
    }
    info(strfmt('Выполнено за %1 сек.', timenow() - startTime));
}
результат:
X++:
Array class  Map
  19 .
Container  Map
  7 .
Теги
dimensions, map

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Классы коллекций (инициализация, сериализация): List, Set, Map. petergunn DAX: База знаний и проекты 14 09.07.2025 11:37
Помещение временной таблицы в Map Lemming DAX: Программирование 20 19.10.2017 14:16
Не корректная сортировка в Map-e и Set-е. AX2009 RU5 Pustik DAX: Программирование 12 03.05.2016 21:28
Dynamics AX: Map Object Sorting - a real issue Blog bot DAX Blogs 7 15.10.2008 12:02
MAP vs Class. В чем идейная необходимость в MAP-ах? А что если использовать Class вместо MAP? Hub DAX: Программирование 16 11.08.2008 16:58

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

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

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