Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 4168 - Создать тест на скорость открытия файла в несовпадающем регистре   Make a simular bug
Summary: Создать тест на скорость открытия файла в несовпадающем регистре
Status: CLOSED FIXED
Alias: None
Product: EterForceTest
Classification: Свободные проекты (Open source projects)
Component: Общее (Common) (show other bugs)
Version: не указана
Hardware: PC All
: P4 minor
Target Milestone: ---
Assignee: Иван Загарский
QA Contact:
URL: http://freesource.info/wiki/WINE/Meas...
Whiteboard:
Keywords:
Depends on:
Blocks: 5906 42 3783
  Show dependency treegraph
 
In work:
Reported: 2009-07-31 19:32 MSD by Vitaly Lipatov
Modified: 2012-08-12 22:35 MSK (History)
1 user (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2009-07-31 19:32:34 MSD
При открытии файла Wine выполняет stat по его имени, если не находит (допустим, из-за несовпадения регистра), начинает выполнять полный перебор.
Предлагаю сделать тест, чтобы понять степень ущерба при тысяче файлов в каталоге.
Конечно, предварительно тест должен измерять время поиска при совпадении регистра файлов. Имена файлов должны генерироваться, и поиск должен выполняться по всем файлам.

При обнаружении существенного замедления можно рассмотреть несколько идей:
 - сначала перебор файлов делать по маске R*.*, где R - первая буква названия файла, инвертированная по регистру, а потом по маске N*.*, где N - первая буква названия файла.
 - пробовать открывать (stat) файл с названием, полностью приведённым к нижнему регистру (и для больших баз рекомендовать переименовывать все файлы)
 -  на определённое время кэшировать для каталога информацию о содержащихся в нём файлах. Это поможет в случае массированного (тысячи файлов) открытия файлов подряд в одном каталоге.
Comment 1 Иван Загарский 2011-01-26 18:33:52 MSK
Приступаю к выполнению
Comment 2 Иван Загарский 2011-01-26 21:30:37 MSK
Создаю отдельный тест для определения выполнения поиска по файлам.
Comment 3 Иван Загарский 2011-01-31 20:56:25 MSK
Определил создание папки, в ней происходит генерация тысячи файлов (имена файлов случайны). Определил функцию поиска файла по маске. Для тысячи фалов составляет 8 мс.
Comment 4 Иван Загарский 2011-02-03 20:07:05 MSK
Вследствие несоответствия программы поставленной задаче, вношу изменения.
Comment 5 Иван Загарский 2011-02-07 22:09:33 MSK
С использованием функции MSTART для определения времени выполнения функции stat получил следующие результаты : 
- при совпадении регистра 120.691 мкс
- при несовпадении 0.160 мкс
Задача выложена на git.eter:/people/grosso/packages/eterforcetest.git
Comment 6 Иван Загарский 2011-02-21 20:20:43 MSK
(В ответ на comment #5)
> С использованием функции MSTART для определения времени выполнения функции stat
> получил следующие результаты : 
> - при совпадении регистра 120.691 мкс
> - при несовпадении 0.160 мкс
> Задача выложена на git.eter:/people/grosso/packages/eterforcetest.git

Данная задача выполнена неверно (программа eterforcetest stat не является рабочей )
входе исправления, обнаружил ошибку удаления созданных файлов и определения времени обращения к файлу при совпадении и несовпадении регистров. После исправления получил следующие результаты:
 - при совпадении регистра 104.246 мкс
 - при несовпадении 105.131 мкс
как видим из результатов замедления обращения к файлу практически нет.
Выложил на it.eter:/people/grosso/packages/timetests.git
Comment 7 Vitaly Lipatov 2011-02-23 15:19:28 MSK
Написал в рассылку wine-devel@ замечания по коммиту.
Comment 8 Иван Загарский 2011-03-18 20:22:58 MSK
Внес исправления. Отправил на  git.eter:/people/grosso/packages/eterforctest.git.
Comment 9 Vitaly Lipatov 2011-03-21 14:43:29 MSK
(В ответ на comment #8)
> Внес исправления. Отправил на 
> git.eter:/people/grosso/packages/eterforctest.git.
Просьба всегда копировать пути и пр., а не писать руками. Это лишает возможности сделать опечатку.

Также неплохо приводить результат выполнения теста.

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

И прочитай ещё раз мои замечания, которые я отправлял. Половина не учтена, в том числе по самой сути тестируемых функций. Цель — проверить время открытия файла функцией CreateFile, а не что-то другое.
Comment 10 Иван Загарский 2011-03-25 21:16:53 MSK
Новый вариант выложил на git.eter:/people/grosso/packages/eterforcetest.git
Comment 11 Иван Загарский 2011-03-25 21:33:44 MSK
Получил результаты : 
- при совпадении регистра 252.286mks
- при несовпадении 375.571mks
Comment 12 Иван Загарский 2011-04-02 17:47:57 MSK
Задача решена
Comment 13 Vitaly Lipatov 2012-08-12 22:35:32 MSK
Принял патч в репозиторий, опубликовал.