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

Вниз

Где можно найти VTUNE ?   Найти похожие ветки 

 
3asys   (2002-09-17 13:54) [0]

Может быть кто-нибудь подскажет где можно найти VTUNE?
С Уважением, 3asys


 
AL2002 ©   (2002-09-17 14:10) [1]

Что это и для чего?


 
3asys   (2002-09-17 14:19) [2]

VTune™ Performance Analyzers - для анализа производительности программных кодов. Подробнее:
http://developer.intel.com/software/products/vtune/vtune60/vtune_oview.htm

С Уважением, 3asys


 
Alx2 ©   (2002-09-17 14:24) [3]

>3asys (17.09.02 14:19)
Таки профилировщиком решил проехаться?
У меня есть старенький (3-я версия) 25Mb


 
3asys   (2002-09-17 14:30) [4]

>>Alx2
Да, только где и как (25Мб - неслабо) его взять?
И раз уж вспомнил про то обсуждение
( http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1031915428&n=0)
Сам алгоритм - это просто 2 вложенных цикла (внешний по строкам, внутренний - по символам в строке). Вопрос тогда был - как такое сделать иначе? (мне тогда надолго отключиться пришлось - не успел закончить обсуждение) Как думаешь?

С Уважением, 3asys


 
Alx2 ©   (2002-09-17 15:02) [5]

>3asys (17.09.02 14:30)
Надо видеть код.
VTune могу выложить на наш ftp.
Надо будет - пиши на мыло.


 
3asys   (2002-09-17 15:25) [6]

>>Alx2
Если не трудно, выложи, пожалуйста. Попробую скачать за сегодня-завтра.

Код анализатора текста:
procedure Tfiep.DocIndexing(fn : String);
var
re : TRichEdit;
cntstr : Integer; //счетчик строк
lstr : Integer; //длина текущей строки
cntchar : Integer; //счетчик символов в строке
flagnotag : Boolean; //флаг непринадлежности тегу TRUE - не принадлежит, FALSE - принадлежит
currchar : String;
currword : String;
begin
//Разбор текста:
flagnotag:=True;
re:=TRichEdit.Create(Self);
re.Visible:=False;
re.Parent:=Self;
re.Lines.LoadFromFile(fn);
re.Lines.Add(" ");
cntstr:=0;
currword:="";

GaugeStr.Progress:=0;
GaugeStr.MaxValue:=re.Lines.Count;
GaugeStr.Visible:=True;

While cntstr <= re.Lines.Count do //Цикл по строкам текста
begin {1}
lstr:=Length(re.Lines[cntstr]);
cntchar:=1;
While cntchar <= lstr do //Цикл по символам строки
begin {2}
currchar:=re.Lines[cntstr][cntchar];
if currchar = "<" Then flagnotag:=False;
if currchar = ">" Then flagnotag:=True;
if flagnotag Then //ищем только текст вне тегов
begin {3}

if (currchar = " ") and (Trim(currword) <> "") then
begin {4}
//Проверяем наличие слова в черном списке:
impdm.qFltr.Close;
impdm.qFltr.Parameters.ParamByName("w").Value:=Trim(currword);
impdm.qFltr.Parameters.ParamByName("t").Value:=impdm.DocTypesID.Value;
impdm.qFltr.Open;
if impdm.qFltr.Eof then
begin {5}
impdm.Wrd.Insert;
impdm.Wrd.FieldByName("Word").AsString:=Trim(AnsiLowerCase(currword)); //В нижнем регистре
impdm.Wrd.Post; //без пробелов
end; {-5}
currword:="";
end
else begin
if currchar <> """" then currword:=currword+currchar //решение проблемы
else currword:=currword+"`"; //апострофа
end; {-4}

end; {-3}
cntchar:=cntchar+1;
end; {-2}
GaugeStr.Progress:=GaugeStr.Progress+1;
cntstr:=cntstr+1;
end; {-1}
re.Free;
end;

С Уважением, 3asys


 
Alx2 ©   (2002-09-18 08:38) [7]

> currchar:=re.Lines[cntstr][cntchar];
Работает очень долго.
Зачим заставлять для очередного символа фиксированной строки снова вычислять эту строку (re.Lines[cntstr])?

> impdm.qFltr.Parameters.ParamByName("w").Value:=Trim(currword);
> impdm.qFltr.Parameters.ParamByName("t").Value:=impdm.DocTypesID.Value;

Если есть возможность искать по индексу (lookup или findkey) то лучше ее использовать. Хотя здесь не совсем понятно что такое impdm.qFltr и impdm.Wrd.

А возможностей для оптимизации здесь - куча.

Но в первую очередь, скорее всего, надо постараться обойтись без фильтра. Заменить его чем-нибудь побыстрее.


 
3asys   (2002-09-18 10:27) [8]

impdm.qFltr - TADOQuery
impdm.Wrd - TADOTable

Спасибо, попробую, но боюсь, что без кардинального изменения алгоритма, без смены алгоритма на другой, резкого повышения скорости не произойдет. Вот в чем этот другой может состоять - вопрос -)

С Уважением, 3asys


 
3asys   (2002-09-18 10:29) [9]

P.S. Прошу простить за большую паузу - не всегда могу оставаться в инете.

С Уважением, 3asys



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
3-45210
stub
2002-09-23 13:22
2002.10.14
sql запрос по выбору записи содержащей русские символы не пашет


3-45235
Карелин Артем
2002-09-24 11:38
2002.10.14
FireBird. Чтение записи из другой таблицы в триггере.


1-45311
Supra
2002-10-03 10:14
2002.10.14
Описание к графическим файлам


4-45643
sKiF_Rosdm
2002-08-31 15:21
2002.10.14
Функции API


1-45348
Vit_Delit
2002-10-05 20:55
2002.10.14
Изменение размера компонентов в Run-Time