Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#121: 2011-07-30 13:57:43 ЛС | профиль | цитата
В принципе у меня число попугаев одинаково.
testmulti.png
Разница только в размере *.pas - файлов: nesco = 6255, на штатных = 4874.

И число попугаев на 10000 повторов
for10000.png
------------ Дoбавленo в 13.57:
nesco писал(а):
Короче, все остается как есть. Ничего я переделывать не буду,

А я бы все ж таки изменил
#pas
procedure THiMultiBlockFindM._work_doMultiBlockFind;
var
  i: integer;
  Text: string;
  dt: TData;
  mt: PMT;
  initmt: boolean;  
begin
  text := ReadString(_Data, _data_Text);              // Читаем Текст
  dtNull(dt);                                         // Чистим dt
  if (FListTag.Count = 0) or (text = ') then exit;   // и нахрена мы это все делали если FListTag  
                                                      // оказался пустым ? 
                                                      // Так "защита от дурака" превращается в 
                                                      // "дурацкую защиту".
  for i := 0 to FListTag.Count - 1 do
  begin
    mt := nil;
    initmt := true;
    findblock(text, FListTag.Items[i]);
    if(i >= 0) and (i < FCount) then _hi_onEvent(onResult[i], dt);
    if Assigned(mt) then mt_free(mt);      
  end  
end;

// Более логично

procedure THiMultiBlockFindM._work_doMultiBlockFind;
var
  i: integer;
  Text: string;
  dt: TData;
  mt: PMT;
  initmt: boolean;  
begin
  if (FListTag.Count = 0) then exit;            // Уходим если  FListTag пустой. Если нет то
  text := ReadString(_Data, _data_Text);        // читаем текст
  if  (text = ') then exit;                    // Уходим если текста нет
  dtNull(dt);
  for i := 0 to FListTag.Count - 1 do
  begin
    mt := nil;
    initmt := true;
    findblock(text, FListTag.Items[i]);
    if(i >= 0) and (i < FCount) then _hi_onEvent(onResult[i], dt);
    if Assigned(mt) then mt_free(mt);      
  end  
end;
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2testmulti.png [53.2KB] [624], for10000.png [13.4KB] [625]
Ответов: 16884
Рейтинг: 1239
#122: 2011-07-31 14:21:48 ЛС | профиль | цитата
Вот так у меня выигрыш по скорости >20%.
mytest.png
хотя это никому не интересно, но на всякий случай вот компонент
multiblockfindm.rar

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 2multiblockfindm.rar [2.2KB] [274], mytest.png [13.7KB] [556]
Ответов: 3349
Рейтинг: 233
#123: 2011-07-31 15:06:18 ЛС | профиль | цитата
Tad, Успокойся уже ты
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#124: 2011-07-31 16:07:26 ЛС | профиль | цитата
Ivann, не волнуйся - я спокоен.
Сервантес писал(а):
"Платон мне друг, но истина дороже"


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8941
Рейтинг: 824
#125: 2011-07-31 16:10:34 ЛС | профиль | цитата
Tad, "Я спокоен, я абсолютно спокоен, руки у меня тёплые и тяжёлые......."
карма: 19

0
Разработчик
Ответов: 26222
Рейтинг: 2138
#126: 2011-07-31 16:35:33 ЛС | профиль | цитата
Tad писал(а):
но на всякий случай вот компонент

Вот и оставь его себе. Надоело уже
карма: 22

0
Ответов: 3349
Рейтинг: 233
#127: 2011-07-31 17:08:01 ЛС | профиль | цитата
[flood]
nesco писал(а):
Вот и оставь его себе. Надоело уже

Чего это вы все такие нервные [/flood]
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#128: 2011-07-31 17:54:39 ЛС | профиль | цитата
Ivann, [flood]обычная реакция авторов на замечания.
Попробуй сказать матери, что её дитя дефектное. [/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26222
Рейтинг: 2138
#129: 2011-07-31 23:33:45 ЛС | профиль | цитата
Tad, надо уметь вовремя остановиться, иначе -- процес совершенствования бесконечен. Или как в том анекдоте про программиста, дитя и солнце -- заходит и восходит... каждый день... ничего не трогай
карма: 22

0
129
Сообщение
...
Прикрепленные файлы
(файлы не залиты)