Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

помогите найти источник варнинга.   Найти похожие ветки 

 
jack128 ©   (2004-08-11 01:48) [40]


> и губительно скажется на производительности.
ЛОЛ!!!

Ладно забей - как нить избавлюсь от этих варнингов..


 
GuAV ©   (2004-08-11 01:54) [41]


> Ладно забей

Та нет, самому теперь интересно стало... ворнинги явно не по делу... переменная инциируется компилером... и сам же видишь, что функция и процедура - онди хрен, а они почему то только в функции...
В Борланд написать, что ли...

Как ещё мысля :) если весь код твой, перепиши, чтоб были процедуры.


 
GuAV ©   (2004-08-11 01:56) [42]


> перед вызовом функции

в начале метода.


 
Piter ©   (2004-08-11 02:35) [43]

GuAV ©   (11.08.04 1:44) [39]
А если не хочешь так, то в nil инициализируй сам перед вызовом функции - но тогда будет одна лишшшняя инструкция в коде и губительно скажется на производительности


Да, такая программа даже на P4 будет тормозить... однозначно...


 
GuAV ©   (2004-08-11 02:52) [44]

jack128 ©   (11.08.04 01:48) [40]
Piter ©   (11.08.04 02:35) [43]

Хотите ещё посмеятся? Это типа как GuAV добился резкого прироста производительности:
было
           begin
             if (F.Name<>".") and (F.Name<>"..") then
               Process(F.Name);
           end
стало
           begin
             if DirIsNotThisOrParent(F.Name) then
               Process(F.Name);
           end
...
function DirIsNotThisOrParent(const S: string): Boolean;
asm
       MOV    EDX, EAX
       CALL   System.@LStrLen
       OR     EAX, EAX   // Нуль?
       JZ     @@2        // если нуль
       CMP    EAX, 2
       JG     @@2        // Длинее
       JE     @@1        // Равна
                         // Короче
       CMP    [EDX].Byte, "."
       SETNZ  AL    // True если не равна
       RET

 @@1:  CMP    [EDX].Word, ".."
       SETNZ  AL
       RET

 @@2:  MOV    AL, True
end;


 
jack128 ©   (2004-08-11 11:11) [45]

А можно узнать что выполняется в Process(F.Name), что по сравнению так сильно влияние двух сравнений? Да и вообще, я так понимаю f - TSearchRec ? тогда процедуры поиска FindFirst/Next - должны также нивилировать значение этих сравнений.. Вобщем задачу опиши - интересно же ;-)


 
GuAV ©   (2004-08-11 12:10) [46]

по оффтопу:
Рекурсивный поиск. Ищет по подпапкам, ели Recourse = True. Вызывает AddFile для каждого файла.
закоментируй проверку if DirIsNotThisOrParent(F.Name) then - и будет Стек Оверфлов.
 procedure TfrmMain.AddDir(const FileName: string);
 const AttrArr: array[Boolean] of Integer
   =(faAnyFile and not faDirectory, faAnyFile);
 var SrcAttr: Integer;
 procedure Process(const FileName: string);
 var F: TSearchRec;
 begin
   ChDir(FileName);
   if FindFirst("*",SrcAttr,F)=0 then
     try
       repeat
         if (F.Attr and faDirectory)<>0 then
           begin
             if DirIsNotThisOrParent(F.Name) then
               Process(F.Name);
           end
         else AddFile(ExpandFileName(F.Name));
       until FindNext(F)<>0;
     finally
       FindClose(F);
     end;
   ChDir("..");
 end;
begin
 BeginUpdate;
 try
   SrcAttr:=AttrArr[Recourse];
   Process(ExpandFileName(FileName));
 finally
   EndUpdate;
 end;
end;
по сабжу:
в самом начале метода присвоить nil не помогает?


 
jack128 ©   (2004-08-11 13:08) [47]


> по оффтопу:
Мы ж потрепаться, какие оффтопы ;-)

не знаю.
procedure TfrmMain.AddFile(const s: string);
begin
 ListBox1.Items.Add(s);
end;
procedure TfrmMain.AddDir(const FileName: string);
...
begin
ListBox1.Items.BeginUpdate;
try
  SrcAttr:=AttrArr[true];
  Process(ExpandFileName(FileName));
finally
  ListBox1.Items.EndUpdate;
end;
end;

Почти без разницы, использовал ли я асм или паскаль.. Странно все это..


> по сабжу:
Да, конечно, никто и не сомневался..


 
GuAV ©   (2004-08-11 13:28) [48]


> Почти без разницы, использовал ли я асм или паскаль.. Странно
> все это..

Я же сказал: добился резкого прироста, столь резкого, сколь резко сказалась для твоего кода лишнее привоение 0 ;-) Не уверен даже прирост ли :-)

> Да, конечно, никто и не сомневался..

Не помогает? Ну тогда объяви как интежер и при кождом юзании typecast делай.


 
Anatoly Podgoretsky ©   (2004-08-11 13:33) [49]

jack128 ©   (11.08.04 13:08) [47]
Мы ж потрепаться, какие оффтопы ;-)

В Потрепать кроме соблюдения темы ты еще обязан и трепаться.



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

Форум: "Потрепаться";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.03 c
1-1092401649
Nata
2004-08-13 16:54
2004.08.29
Файлы


14-1092229871
Дмитрий12
2004-08-11 17:11
2004.08.29
как запустить компонент панели управления


4-1089966976
IllusoryOrion
2004-07-16 12:36
2004.08.29
Опять Shell


14-1092203014
peypivo
2004-08-11 09:43
2004.08.29
И как после такого руки не отсыхают?


1-1092717893
Sash
2004-08-17 08:44
2004.08.29
загрузка HTML в МЕМО





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский