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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2004, 10:08   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Я дома проверил свои предположения. Вот результаты:

Прежде всего, считаем, что данные отображаются не из датасета, а скажем вычисляются на лету, так как в противном случае выбор ListView на таком большом наборе данных мне кажется сомнительным решением.

Итак, за основу берем первоначальный вариант:

PHP код:
void clicked()
{
    
FormlistItem        formListItem;
    
int                 it;
    ;
    
lv.addColumn(1, new FormListColumn('Column'1200));

    
WinAPI::getTickCount();

    for (
i=1i<=30000i++)
       
lv.addItem(new FormListItem('test' int2str(i)));

    
info(int2str(WinAPI::getTickCount() - t));

При этом время выполнения: 11300.

Теперь блокируем listView от перерисовки на время вставки:

PHP код:
void clicked()
{
    
FormlistItem        formListItem;
    
int                 it;
    ;
    
lv.addColumn(1, new FormListColumn('Column'1200));

    
WinAPI::getTickCount();

    
lv.lockWindowUpdate(true);

    for (
i=1i<=30000i++)
       
lv.addItem(new FormListItem('test' int2str(i)));

    
lv.lockWindowUpdate(false);

    
info(int2str(WinAPI::getTickCount() - t));

При этом время выполнения: 10100.

Прирост производительности, есть но не такой большой, как я ожидал.

Что еще можно порекомендовать:

1. Свойство viewType - поставьте report, если еще не стоит. Если вариант с list работает еще более менее, то icon и small icon работают на порядок медленнее.
2. Сортировка - свойство Sort. Хм... довольно неожиданный результат.
noSort - 10100
ascending - 7500
descending - 8100.
3. Можно поиграться из кода методом sort(). Он принимает целое число, и явно влияет на производительность. Но варианты передаваемого параметра нигде не задокументированны, а методом подбора мне удалось добиться только снижения производительности

Итого 7500, против первоначальных 11300 -> 33% выигрыш.

А вообще, если данных действительно так много - я бы посоветовал пересмотреть подход к отображению данных.
Например отображать их не все сразу, а какими-то логическими порциями.
За это сообщение автора поблагодарили: alex55 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Книга Покупок можно ли не закрывать? asabin DAX: Функционал 1 18.11.2005 17:50
Можно ли в инамическом запросе использовать "group by"? yooshi DAX: Программирование 26 23.09.2005 16:35
ListView -> Clipboard -> Excel Deep Dreamer DAX: Программирование 6 17.05.2005 17:09
Можно ли исп. switch задать диапазон для case ??? djoker DAX: База знаний и проекты 23 27.12.2004 15:28
Можно ли поменять налоговый код по проведенной закупке или накладной поставщика Голова 2уха DAX: Функционал 1 25.10.2004 11:51
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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