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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.04.2007, 11:51   #1  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Переброска в массив (экземпляр класса Array) мало чем поможет.
Дело в том, что скорость доступа к элементам массива равна скорости доступа к элементам Binary. Т.е. для массива, в итоге, время будет больше - за счет прибавки времени конвертации (у меня получилось дополнительно порядка 400 мс на мегабайт).

Но задачу в том виде, что вы привели, можно ускорить процентов на 40 просто за счет обращение не к byte(), а к dWord()
Примерно так
X++:
int sizeDiv4;
int sizeMod4;
int val;
int size;
;
...
sizeDiv4 = sizeBuf.dWord(0) div 4;
sizeMod4 = sizeBuf.dWord(0) mod 4;
size = sizeDiv4 + (sizeMod4 ? 1 : 0);
for (i=0;i<size;i++)
{
    if (sizeDiv4 > i)
    {
        val = outBuf.dword(i * 4);
        k += val & 0xff;
        k += val >> 8 & 0xff;
        k += val >> 16 & 0xff;
        k += val >> 24 & 0xff;
    }
    else
    {
        k += outBuf.byte(i * 4);
        if (sizeMod4 > 1)
            k += outBuf.byte(i * 4 + 1);
        if (sizeMod4 > 2)
            k += outBuf.byte(i * 4 + 2);
    }
}
PS Вообще, Axapta не рекордсмен по производительности в плане выполнения тех же математических операций.
Я бы рекомендовал выносить сложные расчетный задачи во внешний код (dll или COM), а в Axapta'у передавать уже результат.
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 09.04.2007 в 10:04. Причина: очепятка
Теги
binary, dll, указатели

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Axapta и Ин. языки SIRS DAX: Администрирование 4 01.03.2006 10:02
Русские демо-данные для Axapta 3.0 2b4fITin DAX: Администрирование 16 15.01.2004 14:01
не получается синхронизировать данные из Outlook в Axapta alpin DAX: Функционал 12 14.01.2004 16:22
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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