Страница: 1 | 2 |
Вопрос: Почему так долго?
Добавлено: 04.05.09 16:49
Автор вопроса: Sergey
Ответы
Всего ответов: 30
Номер ответа: 16
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #16
Добавлено: 06.05.09 02:37
Ну я жутко благодарен за предоставленную мне возможность поспорить.
Номер ответа: 17
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #17
Добавлено: 06.05.09 09:11
Скажите мне! Если использовать API, то время создания можно получить быстрее, чем GetCreationTime?
Номер ответа: 18
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #18
Добавлено: 06.05.09 10:12
Теоритически - да.
В GetCreationTime идет несколько проверок, несколько вызовов более "глубоких" функций.
Но эту разницу ты вполне реально можешь не заметить, так как 99.9% времени займут операции с диском, которые будут выполняться относительно бесконечно долго, хоть ты напрямую вызовешь функцию Win32API, хоть вызовешь метод .NET-класса, который в свою очередь вызовет Win32API.
Номер ответа: 19
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #19
Добавлено: 06.05.09 10:31
То есть ускорить это никак нельзя?
Номер ответа: 20
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #20
Добавлено: 06.05.09 10:43
Если тебе реально нужно куда-то гнаться, попробуй вариант с АПИ. Как говорил один человек, "Иногда я не прав".
Если захочешь еще быстрее - ставить быстрые диски и дисковые массивы, ставить много памяти для кеша данных с диска.
Номер ответа: 21
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #21
Добавлено: 06.05.09 11:34
Я не админ сервера, не могу ничего ставить. Значит программно скорость сильно не увеличишь...
Номер ответа: 22
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #22
Добавлено: 06.05.09 11:35
Файлы находятся на удаленном сервере, с которым связь по каналу 2Мбит.
Номер ответа: 23
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #23
Добавлено: 06.05.09 11:36
"в лоб" возможно и не увеличишь.
Но если идти обходными путями, то скорость можно серьезно увеличить до неприличных значений.
Рассказал бы какая задча стоит, можно было бы что-то посоветовать.
Номер ответа: 24
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #24
Добавлено: 06.05.09 11:52
1.Мне нужно получить время всех файлов в расшаренной папке на удаленном сервере. Локально прога работает мгновенно.
2.Сравнить, входит ли полученная дата в диапазон нужных дат.
3.Если входит, то вывести имя этого файла.
Номер ответа: 25
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #25
Добавлено: 06.05.09 11:55
Ну вот видишь, оказыается тормозом даже не диск является а сеть.
Можно, например, написать службу, которая локально будет выполнять нужные дейсвтия и отдавать уже результат клиентам. Чем такой вариант не подходит?
Номер ответа: 26
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #26
Добавлено: 06.05.09 12:03
Я уже подумываю об этом...
Номер ответа: 27
Автор ответа:
Sergey
Вопросов: 39
Ответов: 87
Профиль | | #27
Добавлено: 06.05.09 12:59
Steel Brand, а ведь можно получить имена и время создания с помощью простой команды DIR в CMD, выгружая все это в файл!!! И работает секунды!!!
Номер ответа: 28
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #28
Добавлено: 06.05.09 15:03
FAT32 хранит файловые записи в порядке добавления, а NTFS в алфавитном порядке. Индексы по датам не строятся, так что логарифмическую сложность имеет только получение файловой записи по имени на NTFS, следовательно, ничего быстрее последовательного перебора для интервала дат нет. Ждем WinFS
Номер ответа: 29
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #29
Добавлено: 08.05.09 00:22
Sharp, насколько я помню, WinFS закрыли несколько лет назад и я не слышал о каких-либо продвижениях в этой области...
Номер ответа: 30
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #30
Добавлено: 08.05.09 16:54
MS закрыла, опенсорс откроет. Так что ждем