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

Вниз

Две версии Функции. что выбрать?   Найти похожие ветки 

 
DVM ©   (2012-12-08 15:32) [40]


> Медвежонок Пятачок ©   (08.12.12 11:23) [39]


> мегафункции грузящие процессор......

а COM объект-монстр, тянущий за собой библиотек на добрую сотню мегабайт, строящий DOM модель (и соответственно по черному жрущий память) для тривиальной задачи - это нормально? И не дай бог для задачи, где требуется высокая производительность? Его функция из [25] много быстрее будет, сдается мне, и к памяти нетребовательна.


 
DVM ©   (2012-12-08 15:37) [41]

Опять же, если речь идет о Windows это одно, но вот у меня, например, половина кода работает под Linux и где там все эти расчудесные либы от MS. Нету там их.


 
DVM ©   (2012-12-08 15:43) [42]


> Pcrepair ©   (08.12.12 01:18) [35]
> использование РегЕксп от ХЕ3 уменьшит загрузку проца?

в [25] у тебя вполне приличный в плане скорости код (на первый взгляд) и он точно будет быстрее RegExp. Загрузка процессора она прямо пропорциональна скорости работы. Не хочешь грузить - вставляй хотя бы sleep, разноси по разным потокам и т.д.


 
Pcrepair ©   (2012-12-08 16:48) [43]

sniknik

> по пункту 2. открой прямо вот эту страницу в исходном коде
> и вырежи ну хотя бы первые 3 блока тегов по своему "алгоритму".
>

открыл, и че?
все блоки со скриптами удалены


 
Медвежонок Пятачок ©   (2012-12-08 17:27) [44]

а COM объект-монстр, тянущий за собой библиотек

Ой ну йо мае.
Браузер-то что по вашему с дом страницей делает?
Не то же самое, и не через то же самое?
Лишь бы потрендеть.


 
Медвежонок Пятачок ©   (2012-12-08 17:30) [45]

для тривиальной задачи - это нормально?

Уже спрашивали. Много раз.
Много раз отвечал, но видимо не доходит. Отвечаю еще раз:
Это нормально. Проверено годами и ежедневным использованием.

А у меня вот встречный вопрос:
Тривиальная задача решается уже второй день, куча кода, для которого потребуется еще куча другого кода.
Для меня это дико и ненормально. А для вас?


 
Медвежонок Пятачок ©   (2012-12-08 17:38) [46]

Его функция из [25] много быстрее будет, сдается мне, и к памяти нетребовательна.

Теперь сравни время потраченное на ее написание, время на ее сопровождение, время, которое он выиграет по сравнению с тем, если будет с домом работать через дом (как и делают вменяемые люди).

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


 
Pcrepair ©   (2012-12-08 17:55) [47]

медвежонок, ну не надо так нервничать
это все просто изучение ДЕЛФИ, пока в рамках процедурного программирования
сообрази сам, можно ли заморачиваться на ООП не изучив процедурное?
сам то небось лет пять говнокод писал, пока не научился?

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


 
Медвежонок Пятачок ©   (2012-12-08 18:02) [48]

Ты скажи, грузится твоя страница в дом или нет?
Если грузится, то задача решается минимальным объемом кода ([39]).

Причем этот код в сто раз более прозрачен и в тыщщу раз более легко модифицируем. (а это в миллион раз важнее абстрактной оптимизации которая как раз таки в тривиальной задаче никому реально не нужна).

Если ты разработчик, то от тебя в первую очередь ждут быстрого решения задачи. И способности быстро перестроить уже реализованное решение под меняющиеся условия. А меняются они в реальной жизни очень часто.


 
Pcrepair ©   (2012-12-08 18:22) [49]

моя страница(точнее любая из триллиона страниц интернета) в дом не грузится
страница так сказать парсится. из нее вынимаются тексты предназначенные для людей и анализируются на предмет соответствия критерию.

но полный пример приведи, просто интересно будет посмотреть что это


 
Медвежонок Пятачок ©   (2012-12-08 18:25) [50]

я не про то, грузишь ли ты свою страницу в дом.
а про то, грузится ли она вообще в дом.
если да, то будет тебе пример образцово-показательного кода.
в коробочном варианте.
потом внукам подаришь.
итак: ссылка на страницу есть?


 
DVM ©   (2012-12-08 18:34) [51]


> Медвежонок Пятачок ©   (08.12.12 17:27) [44]
> а COM объект-монстр, тянущий за собой библиотек
>
> Ой ну йо мае.
> Браузер-то что по вашему с дом страницей делает?
> Не то же самое, и не через то же самое?
> Лишь бы потрендеть.

Потрындеть бы лишь тебе, тысячу раз уже говорил. Если ты не видишь разницы между приложением перелопачивающим тысячи страниц и браузером страницу в котором пользователь открыл и пялится в нее. Если все твои программы такие - то флаг тебе в руки пользуй свои msxml и прочие монстроуозные либы везде где только можно, я же не буду стрелять из пушки по воробьям, там где это недопустимо. Извини, но мне зачастую кажется, что стремление к использованию чужого монструозного, но заведомо рабочего и "безупречного" - это от собственного неумения реализовать простейший алгоритм и лени. Как ты не можешь понять, что нельзя везде пихать COM, XML только из-за того, чтобы было крута и просто в реализации.
Есть другие платформы, наконец, отличные от Win. Расширяй кругозор, оно пригодится.


> Тривиальная задача решается уже второй день, куча кода,
> для которого потребуется еще куча другого кода.
> Для меня это дико и ненормально. А для вас?
>
>

У нас подобные задачи могут решаться и за 10 минут и за несколько дней или даже недель, все зависит от постановки задачи. Если стоит задача распарсить одну страницу раз в час, то сойдет и msxml, если стоит задача, заменять/выделять теги на скоростях в 10 Гбит, то приходится несколько дней искать места, где бы выиграть 5-10% загрузки CPU или ускорить и без того уже вылизанный код на те же 10%. Потому что поток в 10 Гбит/c и терабайты данных это не тот случай, где надо понтоваться с новомодными парсерами и технологиями.


 
Медвежонок Пятачок ©   (2012-12-08 18:38) [52]

Расширяй кругозор, оно пригодится.

Деточка, мой кругозор тебе знаешь куда не влезет?
Если задача должна решаться не на вин, то я ее не буду в твоем любимом рад делать.
Иди в ванную, пооптимизируй что - нибудь.


 
Pcrepair ©   (2012-12-08 18:46) [53]


> а про то, грузится ли она вообще в дом.

вообще наверно грузится. но не в моей программе. там нет ни DOM, ни BOM ни чего еще

но образцово-показательный пример кода давай, посмотрим, измерим, сравним


 
Медвежонок Пятачок ©   (2012-12-08 18:47) [54]

Ты ссылку-то  дашь или нет?


 
DVM ©   (2012-12-08 18:47) [55]


> Медвежонок Пятачок ©   (08.12.12 18:38) [52]
> Расширяй кругозор, оно пригодится.
>
> Деточка, мой кругозор тебе знаешь куда не влезет?

Неприятно? Про потрындеть и пр. не я начал. Я лишь твой стиль общения принял.
Обидеть не хотел, извини.


 
Pcrepair ©   (2012-12-08 18:57) [56]


> Ты ссылку-то  дашь или нет?


ссылку на что? на страницу? так ведь уже сказано:

моя страница(точнее любая из триллиона страниц интернета)

выбери любую, можно прям эту, на которой все это пишем, вот и адрес:
http://delphimaster.net/view/1-1354822431/


 
Anatoly Podgoretsky ©   (2012-12-08 18:59) [57]


> лучше приведи нормальный пример своей версии, с указанием
> используемых унитов и тд. чтоб можно было откомпилировать
> и посмотреть

Типовая разводка на слабо


 
Медвежонок Пятачок ©   (2012-12-08 19:00) [58]

ну не хочешь - не надо.


 
Pcrepair ©   (2012-12-08 19:02) [59]


> ну не хочешь - не надо.

ты это о чем?

толян, ну чего ты опять не в свои дела лезешь? тебе же вредно волноваться


 
Медвежонок Пятачок ©   (2012-12-08 19:05) [60]

Я о том, что не надо прикидываться дятлом.
Разговор был про xtml страницу.


 
Pcrepair ©   (2012-12-08 19:21) [61]

Xtml? страницу??
ха-ха-ха
ты походу не отличаешь кырылиццу от латиницы, если для тебя ХТМЛ(оно же HTML) = xtml

с тобой все понятно, видимо выходные проходят не зря


 
Медвежонок Пятачок ©   (2012-12-08 19:32) [62]

3. ну вообщето речь идет об обработке кода в стандарте ХТМЛ, где на открывающий тег всегда есть закрывающий

http://ru.wikipedia.org/wiki/XHTML

иди давай, задрачивай, свой свой велокод.


 
Pcrepair ©   (2012-12-08 20:02) [63]

и чо? по русски не читаешь?
ХТМЛ это то же что и HTML, обрати внимание на последнюю букву ЛЛЛЛЛ
а стандарт HTML как раз и сообщает о том что тег <script> ВСЕГДА должен заканчиваться </script> - вот об этом речь шла

так что не гони


 
Медвежонок Пятачок ©   (2012-12-08 20:04) [64]

ты еще здесь?
а как же мегапроблема удаления скриптов?


 
DVM ©   (2012-12-08 20:08) [65]


> Pcrepair ©   (08.12.12 19:21) [61]


> оно же HTML

так речь об HTML, а не XHTML?


> Медвежонок Пятачок ©   (08.12.12 19:32) [62]

он ведь действительно про HTML получается написал, а не про XHTML, зря мы тут ругались. Я тоже прочитал как XHTML.


 
Медвежонок Пятачок ©   (2012-12-08 20:11) [66]

ну значит все отменяется. драки не будет


 
DVM ©   (2012-12-08 20:17) [67]


> Медвежонок Пятачок ©  

а как же IHTMLDocument2 ? :)


 
DVM ©   (2012-12-08 20:27) [68]


> Pcrepair ©

Раз речь об HTML, то задача несколько усложняется. Дело в то, что я как уже говорил, к некорректным HTML многие браузеры относятся очень лояльно, ведь их задача отобразить страницу, а не делать ей валидацию. Следовательно они глотают ошибки. Следовательно огромное количество страниц на реальных сайтах изобилует ошибками. Они не от неграмотности, они просто от невнимательности или случайных описок. Потом, в HTML слишком много вольностей, регистр тегов может быть разный, кавычки то есть то нет, то двойные то одинарные, и.т.д. ит.п. Поэтому у тебя 3 пути:

1) Пользоваться своей функцией (она будет максимально быстра, но в нынешнем виде имеет недостатки: регистрозависима, закрывающий тег ожидает после Script, ну еще там по мелочам).
2) Использовать регулярные выражения. Но выражение еще надо суметь написать. Кроме того, регулярные выражения обладают плохим свойством, если ими не пользоваться постоянно, перестаешь понимать написанное напрочь спустя время.
3) IHTMLDocument2
4) Сторонний DOM парсер.


 
Pcrepair ©   (2012-12-08 20:28) [69]


> а как же мегапроблема удаления скриптов?

это для тебя мегапраблема, а у меня уже все работает


 
Pcrepair ©   (2012-12-08 20:34) [70]

ну вообще у меня есть набор кривых страниц, на обработке которых зависали прежние версии функций. текущая версия не виснет

что до регистрозависимость - ее нет, еще в модуле загрузчика есть Result:=AnsiLowerCase(Loader.Get(PageUrl));

тут некоторые удивлялись, зачем обработка исключений в цикле. может надо и не в цикле, но как раз для того "закрывающий тег ожидает после Script, ну еще там по мелочам"

так что если что не так то просто exit и фиг с этой страницей


 
DVM ©   (2012-12-08 20:41) [71]


> Pcrepair ©   (08.12.12 20:34) [70]

А зачем ты вообще скрипты то вырезаешь, если не секрет?


 
Pcrepair ©   (2012-12-08 21:00) [72]

уже было:
- при загрузке страниц с фреймами нужно просто удалить теги скриптов со всем содержимым(там внутри есть теги frame src) чтоб не сбивать работу кода дозакачивающего страницы фреймов


 
знайка   (2012-12-08 21:06) [73]

Вот как раз это пояснение совсем не понятное. про что тут, кто догадался? :)


 
DVM ©   (2012-12-08 21:27) [74]


> Pcrepair ©   (08.12.12 21:00) [72]

я это видел, но я не понял, скрипты же только в браузере исполняются, как они тебе могут мешать, если ты страницы грузишь с помощью Indy?


 
Pcrepair ©   (2012-12-08 21:36) [75]

вот так они и мешают:

<script language="javascript">
<!--
var lct = location.href;
var indx = lct.indexof("?",0);
if (indx==-1) {
 var newarray = new array(3)
 newarray[0] = "news";  // var dir
 newarray[1] = "index"; // var sub
 newarray[2] = "index"; // var path
 newarray[3] = "t"; // temp
 newarray[4] = "t"; // temp
};

if (indx > 0) {
 var prm = lct.substr(indx+1);
 var regexp = /&/;
 var newarray = prm.split(regexp);
};
var newcont = "<frameset rows="100,*" border=0 frameborder=0>";
newcont += "    <frameset cols="150,*" border=0 frameborder=0>";
newcont += "       <frame src="mn/logo.htm"  border=0 frameborder=no scrolling=no noresize name="logo" marginwidth=0 marginheight=0>";
newcont += "       <frameset rows="61,*" border=0 frameborder=0>";
newcont += "           <frame src="mn/hd"+newarray[0]+".shtml"  border=0 frameborder=no scrolling=no noresize name="title" marginwidth=0 marginheight=0>";
newcont += "           <frame src="mn/"+newarray[0]+".shtml"  border=0 frameborder=no scrolling=no noresize name="menu" marginwidth=0 marginheight=0>";
newcont += "       </frameset>";
newcont += "    </frameset>";
newcont += "    <frameset cols="129,*" border=0 frameborder=0>";
newcont += "           <frame src="mn/"+newarray[0]+"/"+newarray[1]+".shtml"  border=0 frameborder=no scrolling=no noresize name="navg" marginwidth=0 marginheight=0>";
if (newarray[1]!="index") {
newcont += "        <frame src=""+newarray[0]+"/"+newarray[1]+"/"+newarray[2]+".shtml"  border=0 frameborder=no scrolling=auto name="work" marginwidth=0 marginheight=0>";
};
if (newarray[1]=="index") {
newcont += "        <frame src=""+newarray[0]+"/"+newarray[2]+".shtml"  border=0 frameborder=no scrolling=auto name="work" marginwidth=0 marginheight=0>";
};
newcont += "    </frameset>";
newcont += "</frameset>";
document.write(newcont);
document.close();
//-->
</script>


у меня функция воостановления УРЛ и закачки страницы фрейма реагирует на frame src, соотвественно если не удалить скрипты то получится черти что


 
DVM ©   (2012-12-08 21:46) [76]


> Pcrepair ©   (08.12.12 21:36) [75]

так, кажется начинаю понимать, а в целом что за задача? скачать сайт целиком и получить оффлайн его копию?


 
Pcrepair ©   (2012-12-08 22:01) [77]

нет конечно. для этих целей полно всяких программ
это поисковая программа типа краулера (шманьдекс,хугль и прочие поисковые машины), но персональная. задаешь детальное описание искомого (десятки слов) и нажимаешь большую красную кнопку "крякер интернета" и программа начинает искать. ищет час, два, пока все не обшарит, потом выдает УРЛ страниц наиболее релевантных тексту запроса в виде ХТМЛ-страницы в системный браузер. далее уже можно просмотреть чего там накопано


 
Inovet ©   (2012-12-09 00:04) [78]

> [77] Pcrepair ©   (08.12.12 22:01)
> ищет час, два, пока все не обшарит

Может год, два?


 
Германн ©   (2012-12-09 02:16) [79]


> это поисковая программа типа краулера (шманьдекс,хугль и
> прочие поисковые машины), но персональная. задаешь детальное
> описание искомого (десятки слов) и нажимаешь большую красную
> кнопку "крякер интернета" и программа начинает искать.

Класс!
:)


 
Anatoly Podgoretsky ©   (2012-12-09 11:26) [80]

> Inovet  (09.12.2012 00:04:18)  [78]

Главное, что ищет ведь она для этого и предназначена, пусть ищет



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

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

Наверх





Память: 0.63 MB
Время: 0.004 c
2-1450086211
TheEd
2015-12-14 12:43
2017.11.12
как отловить необходимость погасить кнопку в ячейке StringGrid


2-1450677845
ВладОшин
2015-12-21 09:04
2017.11.12
подскажите обратную формулу


15-1466102639
Kerk
2016-06-16 21:43
2017.11.12
Ноутбук с витрины


2-1449542054
Арлекино
2015-12-08 05:34
2017.11.12
Корректно ли объявление аргумента как var Param: PByte?


6-1284011253
Alexandro
2010-09-09 09:47
2017.11.12
Как получить доступ к элементу в TWebBrowser?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский