Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Какой операционной системой вы пользуетесь? [5]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (10): « 1 2 3 4 [5] 6 7 8 9 ... » В конец    

> Опрос
Какой операционной системой вы пользуетесь?
Для голосования и просмотра результатов опроса войдите или зарегистрируйтесь

> Без описания
ETC Администратор
Отправлено: 12 Ноября, 2004 - 18:27:34
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Леголегс
Да пажалста Улыбка
 
 Top
Nikitich
Отправлено: 13 Ноября, 2004 - 14:09:18
Post Id



Пришелец-прораб


Покинул форум
Сообщений всего: 219
Дата рег-ции: Июль 2004  

Карма 16




Леголегс
Цитата:
Две секунды - это много! (раз-ииииии два-ииииииии)

Что такое ноутбучный винчестер на 4200 оборотов, надо объяснять?
Цитата:
Когда я жду открытия папки секунду - я предполагаю увидеть прорву файлов.

А пять тыщ - не прорва? Скажи тогда, что такое прорва. И вообще твой пойнт был:
Цитата:
Да я про то, что по сравнению со временем рендеринга всех этих папочек, значёчком, надписей (в случае с десятками тыщ файлов) время получения инфы из файловой с-мы - сущая ерунда.

что с успехом было опровергнуто - время на отображение картинок меньше времени считывания информации с диска. Радость
Цитата:
(кстати, о DOS) Что же такое батник? Это макрос для DOS (ну, для её подфорточного суррогата))

Садись, два. Отличий .bat файлов от макросов ты не знаешь. В данном случае .bat файл и Excel - это две такие чУдные примочки, которые за пару минут позволили вывести тебя на чистую воду. То же самое можно было бы сделать на С, но зачем? Радость
Цитата:
Я говорил про то, что при открытии папки список очищается а потом сканируется файловая система и в контрол по _одному_ добавляются элементы, пока не будут так обработаны ВСЕ файлы в папке, как раз на это и ужодит львиная доля времени. А когда все файлы добавлены, вот тогда окно отвисает и в нём можно работать.

Да, с памятью у тебя неважно. Ну да ладно. Расскажи, пожалуйста, как надо обрабатывать "прорву файлов", если не заполнять список поэлементно и потом не отображать его? Радость Есть секретный способ добавлять файлы по два, например? Ха-ха
Цитата:
Разумеется, ведь всё уже считано и только работает контрол, а сам по себе он не тормозной.

Ну так ты определись, тормозной он или нет. Радость Радость
Цитата:
Уж поверь программисту, этот контрол сам себя перерисовывает (методом refresh) после каждого добавления элемента. Еслиб он такой ерундой не занимался, то проблемы бы не стояло.

Опять неувязочка: "вот тогда окно отвисает". Что ж он не перерисовывает, этот контрол? Радость
Насчет программиста что-то есть сомнения. Ты хоть тыщ двадцать строк кода написал вообще?
Цитата:
А вот в тоё-же freeBSD безопасность на уровне.

Хе-хе. Во-первых, она не столь популярна, как Windows, во-вторых, на сайт www.bugtrack.ru ты, похоже, не заходишь, в-третьих, на сайте www.freebsd.org ты, похоже, тоже не был... Мне как-то попадался сравнительный обзор операционок, точнее их устойчивости к взломам по TCP/IP - везде куча дыр, и в Windows, и в *nix'е. И так было, и так будет. Любой программист знает, что все ошибки исправить невозможно.
Цитата:
Я вообще-то про то, что 100$ за скучающее поплёвывание в потолок - многовато

Если админ ничего не делает, значит, все в порядке.
 
 Top
Леголегс Администратор
Отправлено: 14 Ноября, 2004 - 09:15:00
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Nikitich пишет:
Что такое ноутбучный винчестер на 4200 оборотов, надо объяснять?
Бедняга... Однако это не столь существенно, в чём ты можешь убедиться, читай дальше.
Nikitich пишет:
А пять тыщ - не прорва? Скажи тогда, что такое прорва.
Вот кеш ИЕ после двух лет юзанься без чистки и самым большим ограничением по размеру содержит прорву файлов.
Nikitich пишет:
что с успехом было опровергнуто - время на отображение картинок меньше времени считывания информации с диска.
Я неправильно выпазился. Под "рендерингом" я разумел не время образоваеия набора пикселей, а время забивания данных в контрол.
Nikitich пишет:
Садись, два. Отличий .bat файлов от макросов ты не знаешь. В данном случае .bat файл и Excel - это две такие чУдные примочки, которые за пару минут позволили вывести тебя на чистую воду. То же самое можно было бы сделать на С, но зачем?
Може быть, я и неправильно понимаю слово "макрос". И причём тут чистая вода? Мы о виндах говорим или обо мне?
Nikitich пишет:
Да, с памятью у тебя неважно.
Написанное мной надо шире воспринимать. Я когда пишу, я текст lZIP'ом сжимаю Улыбка
Nikitich пишет:
Есть секретный способ добавлять файлы по два, например?
Если бы я писал тот контрол, то он бы наверно, был.
Nikitich пишет:
Ну так ты определись, тормозной он или нет.
Он не тормозной сам по себе, но взаимодействие с ним иедленное.
Nikitich пишет:
Опять неувязочка: "вот тогда окно отвисает". Что ж он не перерисовывает, этот контрол?
А он перерисовывает, но винды этого не показывают. Т.е. если в какой-то момент посмотреть, как, "по мысли" контрола он выглядит, то ты увидишь, что всё ок, всё перерисовано. А система относится к этому халатно, и за ним каждый раз экран не обновляет. Однако у скролла, встроенного в контрол исправно сжимается ползунок. И не спрашивай почему! Не я это всё писал, я только мыслю и предполагаю. Можешь проследить за проводником с отладчиком сам, если тебя такие подробности интересуют.
Nikitich пишет:
Насчет программиста что-то есть сомнения. Ты хоть тыщ двадцать строк кода написал вообще?
Ну, в отличие от некоторых я хоть что-то в программировании соображаю и знаю 1.1 языков (0.9 VB и 0.2 C++ Улыбка ) А строки я не считал, но тыщи две с половиной спокойно наберётся. За большим дело не станет. Программист - это пока не профессия, но хобби.
Знаешь, задел ты мою прогерскую гордость, вот тебе программа. Она написана специально, показывает время просмотра указанной папки. Просматривает она тремя способами:
1) обычный (просто имена файлов добавляет в список)
2) быстрый (сначала список делается невидимым (чтоб не обновлялся каждый раз) потом как и при обычном методе заполняется. Под конец он делается видимым) и
3) "пустышка": всё так-же, но без добавления в список (его вообще нет). Сорсы прилагаются.
 
 Top
ETC Администратор
Отправлено: 14 Ноября, 2004 - 10:08:38
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Леголегс
Во, вы дожили. Вы уже про такие мелочи начали спорить, что я ужо щас с кресла рухну...
Nikitich пишет:
Ты хоть тыщ двадцать строк кода написал вообще

А я уже и больше написал Улыбка Без обид Улыбка
 
 Top
Nikitich
Отправлено: 15 Ноября, 2004 - 16:55:48
Post Id



Пришелец-прораб


Покинул форум
Сообщений всего: 219
Дата рег-ции: Июль 2004  

Карма 16




Леголегс
Цитата:
Вот кеш ИЕ после двух лет юзанься без чистки и самым большим ограничением по размеру содержит прорву файлов.

Ну, поскольку ты затрудняешься дать определение "прорве", то я волевым решением назначаю: lngProrva=100000 Улыбка По-моему, это достаточно много.
Цитата:
Може быть, я и неправильно понимаю слово "макрос".

Основной недостаток батовских файлов в них, в отличие от большинства макро-языков, практически нельзя циклы по условию делать. То есть, конечно, условия можно задавать и GOTO делать, но это все-таки не циклы.
Цитата:
Я неправильно выпазился. Под "рендерингом" я разумел не время образоваеия набора пикселей, а время забивания данных в контрол.

Хе-хе, замечательно. Щас рассмотрим, как ты забиваешь данные в контрол.
Цитата:
А он перерисовывает, но винды этого не показывают. Т.е. если в какой-то момент посмотреть, как, "по мысли" контрола он выглядит, то ты увидишь, что всё ок, всё перерисовано. А система относится к этому халатно, и за ним каждый раз экран не обновляет. Однако у скролла, встроенного в контрол исправно сжимается ползунок. И не спрашивай почему! Не я это всё писал, я только мыслю и предполагаю.

Неправильно мыслишь. Специально берем тормозной винчестер (на десктопе будет не так наглядно) и 100К файлов. Нажимаем на кнопель "Начать" ("Обычный"Подмигивание. Окно перестает реагировать на раздражители совсем, даже не двигается. Через некоторое время оно начинает двигаться, но контрол пуст, полозок не двигается, потом содержимое появляется, но сразу все, добиться появления части списка мне не удалось ни разу. То же самое с контролом "Быстрый метод", только он работает быстрее раза примерно в два. На небольшом числе файлов - 15К - он работает быстрее раза в три, но тут есть одна странная загвоздка - при первом старте контрол "Обычный" показывает меньшее время, при всех повторных - добавляет несколько секунд (до ~четырех на 100К файлов). Таким образом, твоя гипотеза неверна, экран не обновляется, значит, время тратится на что-то еще. Возможно, на какие-то проверки.
Цитата:
строки я не считал, но тыщи две с половиной спокойно наберётся

Видишь, как тебя просто вывести на чистую воду? Язычок

Итак, по твоей программе. "Сделано топориком на коленке." (ц) Подмигивание
Во-первых, в ней ты соединил таскание мышью контролов на форму, что вообще не программирование, и метод copy-paste, что, в общем, не совсем программирование. Результат налицо. Подмигивание

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

Функция "Пустышка" хороша только тем, что она показывает скорость отрабатывания функции Dir. НО она не показывает, сколько времени надо отвести на выделение памяти для списка и переопределение его размера после получения каждого нового имени файла. (Можно, конечно, оптимизировать - выделять память блоками по 10 записей или по 100, но тогда ты выделишь больше, чем надо, плюс еще разных проверок понаделаешь.) А ListView однозначно выделяет память, причем скорей всего поэлементно, поэтому корректнее создать свой список и копить в нем имена файлов, чем просто принимать значения от Dir в переменную, а потом терять их.

Еще момент, ты совершенно не используешь события. А это основа и самой Windows, и данной формы. Как минимум, надо проверить, не меняется ли свойство формы .Dirty, потому что, если оно меняется, то форма должна перерисоваться. Делая контрол "Быстрый метод" невидимым (кстати, почему он остается на экране, интересно), ты просто исключаешь его из списка контролов, чье обновление отслеживается формой. Возможно, в форме действует какой-то цикл For Each, который раз в сколько-то секунд или по наступлению события (Move, Resize, OnDirty или как там его, и др.) обновляет все видимые контролы в форме.

Гм, только что заметил, что форму нельзя передвигать, пока заполняется контрол "Быстрый метод", а, пока заполняется контрол "Обычный" - можно, но он перерисуется, только когда перестанешь двигать форму и отпустишь мышь. Следовательно, делая контрол невидимым, ты действительно изменяешь обработку событий в форме, что и отражается на быстродействии.

Еще об оптимизации - у данного контрола (по крайней мере, у его класса, а проверять, к какой версии этот класс относится, мне лень) есть методы AddRange, BeginUpdate и EndUpdate, которыt как раз и останавливают прорисовку и позволяют относительно быстро добавить/удалить кучу элементов. Есть интересный метод EnsureVisible, позволяющий определить, находится ли элемент списка в видимой части контрола или нет. Можешь проверить, есть ли они в твоей версии VB.

В общем, в первом приближении, ты можешь считать, что при отключении вывода на экран скорость вырастет, но, если начать разбираться, почему это происходит, но уж не потому, что контрол плохо написан. Улыбка

ETC
Цитата:
А я уже и больше написал

Возьми с полки пирожок. Улыбка
На самом деле количество написанных строк - вещь очень условная, например, я при очень большом желании могу писать и отлаживать где-то по 500 строк в день, но кайфа при этом никакого, если ты читал Брукса, то знаешь, что норматив на большие проекты - 100 строк в день, а один мой знакомый как-то хвастался, что написал 50К строк за неделю, но это он явно использовал метод copy-paste. Радость
 
 Top
SviMik Супермодератор
Отправлено: 16 Ноября, 2004 - 11:37:03
Post Id



Где-то там...


Покинул форум
Сообщений всего: 3538
Дата рег-ции: Окт. 2004  
Откуда: Tallinn, Estonia

Карма 4




А я чего-то не понимаю, зачем спорить о таких мелочах? Кстати, вы название темы посмотрели? Это начинает плавно переходить в оффтоп. А уж программирование тут совсем не в тему.
Цитата:
Открываем папку Проводником - секунды две или три, не успел засечь, как открылась.

Подумаешь, плюс-минус какие-то две секунды, даже засечь не успел! А спору, тут даже смысла нет... Вы уже и не обращаете внимания, о чём спорите. Конечно, главное - сам процесс, но всему надо знать меру.
Цитата:
Насчет программиста что-то есть сомнения. Ты хоть тыщ двадцать строк кода написал вообще?

Вы ещё подеритесь! Подмигивание
 
 Top
Леголегс Администратор
Отправлено: 16 Ноября, 2004 - 16:19:13
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




Nikitich пишет:
Основной недостаток батовских файлов в них, в отличие от большинства макро-языков, практически нельзя циклы по условию делать. То есть, конечно, условия можно задавать и GOTO делать, но это все-таки не циклы.
Не придирайся. То, что обычно от них требуется батники делаюл.
CODE:
loop:
del file.txt
if exist file.txt goto loop
Вот цикл, который будет пытаться удалить файл, пока другие программы не оттавят его наконец в покое. Циклы типа for делаются через одно место, но всё-же возможны. Вывод: батники, конечно не макросы, но довольно похожи. Закрыли эту ветку оффтопа Улыбка
Nikitich пишет:
Специально берем тормозной винчестер (на десктопе будет не так наглядно) и 100К файлов. Нажимаем на кнопель "Начать" ("Обычный"Подмигивание. Окно перестает реагировать на раздражители совсем, даже не двигается.
А чего ты хотел? У него есть поважнее дела, чем по десктопу бегать Улыбка Я мог бы в коде указать doEvents, тогда бы программа в этом месте делала паузу и обрабатывала другие события. Но это мне не нужно и события записываются в очередь.
Nikitich пишет:
Через некоторое время оно начинает двигаться,
Это хрюшка сама, видимо, его двигает. У меня окно остаётся на месте пока не закончится выполнение подпрограммы.
Nikitich пишет:
но контрол пуст, полозок не двигается,
Ну? А я как сказал? Контрол сам себя перерисовывает, на это уходит время, а виндам по фиг. Только скролл обновляется.
Nikitich пишет:
но сразу все, добиться появления части списка мне не удалось ни разу.
Именно. В конце концов изображение контрола и на экране появляется. А до этого - ни-ни.
Nikitich пишет:
но тут есть одна странная загвоздка - при первом старте контрол "Обычный" показывает меньшее время, при всех повторных - добавляет несколько секунд
Это из-за операционки. У время работы всех вариантов всегда стабильно.
Nikitich пишет:
Таким образом, твоя гипотеза неверна, экран не обновляется, значит, время тратится на что-то еще.
??? Блин, ты вообще читал мой пост? Я и говорю, что котрол себя обновляет, а на экране этого не видно! А если ты не веришь, что контрол сам себя перерисовывает, то трассировка это наглядно показывает! (а при быстром методе происходит то-же самое: с точки зрения формы на ней больше не видно никакого второго истбокса, а на экране он пропадает только если в какой-то момент прервать программу брикпойнтом или аналогичным методом. (в откомпилированном приложении можно msgbox вызывать или типа того)
Nikitich пишет:
и метод copy-paste,
Этод метод действительно был использован, причём дважды: не набирать же заново методы "быстрый" и "пустышка", если они так похожи на "обычный". Хотя, конечно, этой прогой глупо хвастаться (хотя на нашем факультете не многие из первокурсников и такое напишут Недовольство, огорчение ).
Nikitich пишет:
Перебор файлов ты сделал командой Dir, которая рекурсивно обходит каталог и выдает имена файлов по одному.
Спасибо за информацию. Голливудская улыбка Кстати, она не рекурсивна ни в какой мере: содержимое подпапок она не выдаёт.
Nikitich пишет:
После первого же прохода каталог закешируется, и далее скорость дисковых операций учитываться не будет, то есть ты все время будешь гонять данные из одного участка памяти в другой, вынужденно принимая скорость, уж какой она получилась.

1) в вынь 98 каталоги не кешируются
2) И это не нужно, потому, что это тупо. 100 000 файлов - это ни как не меньше мегабайта памяти. А скорее 25 (а может и поболе) Смысл??? Большинство программ не требуют показать им содержимое конкретной папки больше одного раза.
3) Закопипастлил четвёртый метод: вообще без обращения к жёсткому диску. Перебор элементов из листбокса. Результат вдвое меньший, чем у "пустышки". (при этом не стоит забывать, что обращение к свойству контрола в ВБ в 20(!) раз медленне, чем к переменной)
Nikitich пишет:
Кроме того, команда Dir не возвращает атрибутов файла, а Explorer их считывает за один проход вместе с именами, можешь проверить.
Она их не возвращает, но считывает! Заметь, скрытые файлы она не выдаёт.
Nikitich пишет:
НО она не показывает, сколько времени надо отвести на выделение памяти для списка и переопределение его размера после получения каждого нового имени файла.
Ну, показала. Дольше на 20% (сам удивился!)
Nikitich пишет:
Еще момент, ты совершенно не используешь события. А это основа и самой Windows, и данной формы. Как минимум, надо проверить, не меняется ли свойство формы .Dirty,
Повторю: все события обрабатываются после того, как выполнится код.
Nikitich пишет:
Возможно, в форме действует какой-то цикл For Each, который раз в сколько-то секунд или по наступлению события (Move, Resize, OnDirty или как там его, и др.) обновляет все видимые контролы в форме.
Каждый контрол сам распоряжается изображением в своих пределах. Форма тут ни при чём.
Nikitich пишет:
Следовательно, делая контрол невидимым, ты действительно изменяешь обработку событий в форме, что и отражается на быстродействии.
Бла-бла-бла, но ты же не станешь утверждать, что из-за изменения обработки событий изменяется скорость работы функции dir? А мы вообще-то о ней говорим.
Nikitich пишет:
Еще об оптимизации - у данного контрола (по крайней мере, у его класса, а проверять, к какой версии этот класс относится, мне лень) есть методы AddRange, BeginUpdate и EndUpdate, которыt как раз и останавливают прорисовку и позволяют относительно быстро добавить/удалить кучу элементов. Есть интересный метод EnsureVisible, позволяющий определить, находится ли элемент списка в видимой части контрола или нет. Можешь проверить, есть ли они в твоей версии VB.
1) у использованных мной контролов их нет
2) что-то невидно, чтоб в проводнике эти фичи использовались (скажи, сколько проводник открывает папку с 100k файов?)
Nikitich пишет:
В общем, в первом приближении, ты можешь считать, что при отключении вывода на экран скорость вырастет, но, если начать разбираться, почему это происходит, но уж не потому, что контрол плохо написан.
Вообще, если ты забыл, речь шла о том, что проводник задумывается, когда много файлов в папке, а я тебе объяснил, почему не виновата файловая система. Мы отклонились от темы.
Nikitich пишет:
На самом деле количество написанных строк - вещь очень условная,...
Может, откроем тему "программирование"?
 
 Top
sedfom
Отправлено: 15 Февраля, 2005 - 08:38:02
Post Id


Newbie


Покинул форум
Сообщений всего: 11
Дата рег-ции: Нояб. 2004  
Откуда: Москва, Россия

Карма 0




Другая. Очень другая ....
 
 Top
Fermer
Отправлено: 15 Февраля, 2005 - 08:59:20
Post Id


Super Member


Покинул форум
Сообщений всего: 1069
Дата рег-ции: Нояб. 2003  
Откуда: Riga

Карма 5




sedfom
Какая же другая ? Long Horn чтоли ? или win 3.11 ? Улыбка
 
 Top
Alfa
Отправлено: 15 Февраля, 2005 - 11:46:51
Post Id



Программер лодырь


Покинул форум
Сообщений всего: 609
Дата рег-ции: Сент. 2004  
Откуда: Moldova, republic of

Карма 2




Я недавно перешёл на win2003 Server. Не плох, система загружается быстрее чем winXP или win2000.
 
 Top
Страниц (10): « 1 2 3 4 [5] 6 7 8 9 ... » В конец
Сейчас эту тему просматривают: 13 (гостей: 13, зарегистрированных: 0, скрытых: 0)
« Ваш компьютер »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0784]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33