Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

Оптимищация   Найти похожие ветки 

 
Ak47   (2009-08-27 14:51) [0]

как будет более правильно и оптимально:

procedure TForm1.event_hlb2CompareItems(ListBox: TCustomListBox_;
 Section: THeaderSection_; Index1, Index2: Integer; var Result: Integer);
var
 i1, i2: TPItem2;
begin
 i1 := TPItem2(ListBox.Items.Objects[Index1]);
 i2 := TPItem2(ListBox.Items.Objects[Index2]);
 case Section.Tag of
   0: Result := CompareValue(i1.Item.ID, i2.Item.ID);
   4: Result := CompareValue(i1.Item.Memory, i2.Item.Memory);
   6: Result := CompareValue(i1.Item.Threads, i2.Item.Threads);
 end;
end;

// или

procedure TForm1.event_hlb2CompareItems(ListBox: TCustomListBox_;
 Section: THeaderSection_; Index1, Index2: Integer; var Result: Integer);
var
 i1, i2: TPItem2;
 P: Point;
begin
 i1 := TPItem2(ListBox.Items.Objects[Index1]);
 i2 := TPItem2(ListBox.Items.Objects[Index2]);
 case Section.Tag of
   0: P := Point(i1.Item.ID, i2.Item.ID);
   4: P := Point(i1.Item.Memory, i2.Item.Memory);
   6: P := Point(i1.Item.Threads, i2.Item.Threads);
 end;
 Result := CompareValue(P.X, P.Y);
end;


 
Ega23 ©   (2009-08-27 14:58) [1]

Оптимально - пофигу.
Правильно - в case else добавить.


 
Сергей М. ©   (2009-08-27 15:02) [2]


> как будет более правильно


Приведи декларацию TPItem2, без нее рассуждения о "правильности" и тем более оптимальности бессмысленны ..


 
Ak47   (2009-08-27 15:04) [3]


> Приведи декларацию TPItem2, без нее рассуждения о "правильности"
> и тем более оптимальности бессмысленны ..



 { TPItem }

 PPItem = ^TPItem;
 TPItem = packed record
            ID: Integer;
          Name: string;
       Version: string;
   Description: string;
        Memory: Integer; // Занято памяти
      Priority: string;
       Threads: Integer; // Число потоков
         Path: string;
 end;

 { TPItem2 }

 TPItem2 = class
 private
   FItem: TPItem;
 public
   constructor Create(AID: Integer; AName, AVersion, ADescription: string;
     AMemory: Integer; APriority: string; AThreads: Integer; APath: string);
   { properties }
   property Item: TPItem read FItem write FItem;
 end;


 
Сергей М. ©   (2009-08-27 15:11) [4]

Понятно.
Во 2-м варианте лишние телодвижения с P: Point, на производительность алгоритма это скажется, разумеется, не лучшим образом


 
clickmaker ©   (2009-08-27 15:11) [5]

первый на доли миллисекунд оптимальней, ибо не тратится время на Point(i1.Item.ID, i2.Item.ID);



Страницы: 1 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
15-1251358783
oxffff
2009-08-27 11:39
2009.10.25
Выбор HDD на 1,5 T. Нужен отзыв


2-1251666355
wah
2009-08-31 01:05
2009.10.25
Многострочность и StringGrid


2-1251089353
eRoR_rrr
2009-08-24 08:49
2009.10.25
Замена содержимого файла когда он открыт.


2-1251130365
andru
2009-08-24 20:12
2009.10.25
Пояснения по теме интервейсы


15-1250784466
Пит
2009-08-20 20:07
2009.10.25
Игра меньше тормозит при большем разрешении