Леголегс
Цитата:Вот кеш ИЕ после двух лет юзанься без чистки и самым большим ограничением по размеру содержит прорву файлов.
Ну, поскольку ты затрудняешься дать определение "прорве", то я волевым решением назначаю: 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.