Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Как грамотно работать с файлами ? Добавлено: 05.10.04 13:25  

Автор вопроса:  avkiev | ICQ: 226072 

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 16
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #16 Добавлено: 07.10.04 20:58
avkiev
Я тебе примерно объясню, откуда "скорость" у TotalManager'a, и почему кажется, что он работает жутко быстро.

1. ListView может иметь стиль LVS_OWNERDATA. ListView с таким стилем не хранит все данные о всех файлах. Он посылает по мере необходимости запрос в твою оконную процедуру в виде сообщения LVN_GETDISPINFO.
2. Total Commander не показывает иконки найденых файлов и папок. Т.е. не вызывает SHGetFileInfo
3. Total Commander не находит всех файлов (обычно он находит ок. 70%). Видимо не смотрит системные и скрытые файлы.

Вот отсюда и его "скорость".

О SHGetFileInfo:
Это страшный тормоз. 1 вызов (в зависимости от установленных флагов) занимает от 0,3 до 1 мс. Поэтому, если у тебя обычный ListView, который требует сразу занести инфу о всех итемах (включая системный индекс иконки) быстрого поиска ты никогда не получишь.

Какие преимущества даёт LVS_OWNERDATA: Обычно при скролле запрашивается инфа всего о двух итемах, поэтому тормозов нет. При полной перерисовке запрашивается десяток-другой итемов. И всё.

Сравнил три поиска: Прошарить весь диск C:\ (со всеми вложенными папками) на предмет всех файлов и папок.

с LVS_OWNERDATA найдено 33500 файлов. Время поиска 9-12,5 сек (с иконками)(asm)
Виндовый поиск найдено 33500 файлов. Время поиска 33-37 сек (с иконками) (Си++)
Total Commander найдено 21000 файлов. Время поиска 13-17 сек (без иконок) (Delphi)

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

А контролы Dir1 и File1 - "за пару секунд", как написал Apache2, смогут просмотреть только текущую папку, не более:)

Ответить

Номер ответа: 17
Автор ответа:
 avkiev



ICQ: 226072 

Вопросов: 48
Ответов: 107
 Профиль | | #17 Добавлено: 08.10.04 11:06
2 cresta У меня Тотал и иконки показывает, и все файлы находит. У тебя или старая версия или это отключено в опциях.

Про LVS_OWNERDATA никогда не слышал, пасиб, попробую покопать в этом направлении.

Ответить

Номер ответа: 18
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #18 Добавлено: 08.10.04 12:46
У Тотала версия 6.01. Насколько знаю, это последняя. Включил отображение системных и скрытых файлов. Где можно включить иконки не нашёл :(. В общем стал он ещё медленнее, при том что всё-таки опять меньше файлов находит: 31600 нашёл за 20 сек.

Ответить

Номер ответа: 19
Автор ответа:
 avkiev



ICQ: 226072 

Вопросов: 48
Ответов: 107
 Профиль | | #19 Добавлено: 08.10.04 13:09
Для отображения иконок нужна 32-битная версия.
У меня 6.03a 32 bit (16.4.2004)

Конфигурация - Настройка - Экран - Показ Значков

Этот Тотал, конечно, чуть медленнее Фара (про который мы не говорим ибо Консоль), но такой скорости в своем приложении я был бы очень рад

Ответить

Номер ответа: 20
Автор ответа:
  j3d1



ICQ: 8370005 

Вопросов: 34
Ответов: 466
 Профиль | | #20 Добавлено: 08.10.04 16:47
//15 я вот щас пишу файловый менджер, он по скорости парсинга по каталагам с сортировкой уступает всего несколько милесекунд( в папках не больще 50 000 файлов)
конечно С++ есть свое приимущество в скорости, потомучто С++ компилятор, а у вб очень мусорный код(?)

Ответить

Номер ответа: 21
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #21 Добавлено: 08.10.04 22:23
Если ты хочешь быстро, про VB забудь. Даже до Тотала будет далеко, не говоря о чём-то более быстром. Нужна скорость - пиши на Си, асме или хотя бы Делфи.

Ответить

Номер ответа: 22
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #22
Добавлено: 09.10.04 03:04
Этот Тотал, конечно, чуть медленнее Фара

 Не сказал бы что FAR какой то особо суперскоростной. У меня например Window'ый поиск чуть быстрее работает.

Ответить

Номер ответа: 23
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #23
Добавлено: 09.10.04 11:38
Фар он вооюще ниче не отображает, дык с чего бы ему быть медленней ;)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам