Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос в ускорении расчёта. [D6, XP]


Страницы:   1 2 3

Drowsy ©   (2012-01-10 07:17:00) 

В базе данных до фига небольших по количеству, но "длинных" записей таблиц.
Расчётный алгоритм связан с активной навигацией по датасетам этих таблиц.
Вопрос в ускорении расчёта.
Например, если работать не с датасетами, а со связанными списками записей, ускорит ли это расчёт?


sniknik   (2012-01-10 10:45:00) [41]

>> Если нет связанных DBAware, то и метод не нужен.
> Уверен?
уверен что нужен... (для ADO точно), проверка через "внешний объект" гораздо тяжелее отсутствия оной.


OW   (2012-01-10 10:16:00) [42]

точно не помню где не проверяется, как-то находил, потом забыл где именно, только помню вывод. А он таков: ставить всегда, есть или нет DBAware или что-то еще. Не важно. Ставить.
Проверка:
var
 i: Integer;
 BoolDC: Boolean;
 DC, NDC: Cardinal;
 TC: Cardinal;
begin
 aq1.Open;
 DC := 0;
 NDC := 0;
 for i := 0 to 999 do
 begin
   aq1.EnableControls;
   BoolDC := (i mod 2 = 0);
   if BoolDC then
    aq1.DisableControls;
   TC := GetTickCount;
   aq1.First;
   while not(aq1.Eof) do
   begin
     aq1.Next;
   end;
   if BoolDC then
     DC := DC + GetTickCount - TC else
     NDC := NDC + GetTickCount - TC;
 end;
 ShowMessageFmt('DisCtrl %d -- NoDisCtrl %d',[DC, NDC]);


656 vs 1204 тика


OW   (2012-01-10 09:51:00) [43]


> Если нет связанных DBAware, то и метод не нужен.

Уверен?


Jeer   (2012-01-10 09:45:00) [44]


> а есть ли в коде .DisableControls?


Если нет связанных DBAware, то и метод не нужен.


Jeer   (2012-01-10 09:36:00) [45]


> Вопрос в ускорении расчёта.


Вопрос в архитектуре, а Ваш вопрос - ее следствие.


OW   (2012-01-10 09:35:00) [46]

если мало записей, и они неизменны,
может, просто создавать массив и работать с ним?

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


Омлет   (2012-01-10 09:27:00) [47]

1. Прямой доступ к памяти всегда быстрее.
2. Код в студию.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо