![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Привет,
подскажите - кто может сталкивался. Создал некое тестовое приложение (консольное) - для испытаний производительности работы 1 или нескольких потоков. Функция в потоке копирует файл из папки А и считывает его в byte[]. В случае с несколькими потоками - общий массив файлов разбивается на равные части и каждая часть (т.е. каждый файл в части) проходит ту же операцию, что и в случае с 1 потоком. Так вот - выгоды в производительности совершенно не ощущается. Видимо проблема в том, что операцию ведутся в файловой системой. Может кто в курсе - как ускорить потоковую обработку файлов? |
|||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 4 Всего: 13 |
глупый вопрос ,
а процессор позволяет такие операции ? |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
||||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 4 Всего: 13 |
нет, думаю больше в процессоре , так как если C2D или более , то значит он может обрабатывать потоки параллельно
а если одноядерный и один,то ему надо будет постоянно переключаться между двумя потоками , как вывод выиграша в производительности нет на скорость ФС я бы смотрел в последнюю очередь хорошая статья http://www.rsdn.ru/?article/dotnet/CSThreading1.xml Это сообщение отредактировал(а) wester - 22.7.2009, 19:05 |
|||
|
||||
| Wanderer2019 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
wester,
пробовали запускать как на 1, так и на 2 ядерных процах. Толку никакого. Что в 1 потоке занимает определенное время N, что в 30 - на обработку того же объема данных уходит это же самое время N. Видимо никак не ускорить чтение. |
|||
|
||||
| mihryak |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
а я бы - всё же в первую насколько я понимаю, доступ к винчестеру всё же должен быть последовательным, физически даже - головка только в одном месте может находиться понятно, что есть упреждающее чтение (т.е. никогда не прочитается всего лишь один байт), само чтение происходит асинхронно, но быстрее времени суммарного времени чтения всех файлов всё равно не прыгнуть, при этом стоит заметить, что "рваный" доступ к ФС отнюдь в свою очередь не способствует росту производительности, т.к. сбивает с толку эти самые упреждающие выборки другими словами, мне кажется, что потенциальный рост общей производительности при использовании многопоточности будет только там, где основная работа происходит в CPU, в остальных случаях МП - лишь способ не расстраивать пользователя неотвечающим приложением всё это мои домыслы, надо бы почитать Рихтера, но, на мой взгляд, довольно правдоподобно |
|||
|
||||
| wester |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 4 Всего: 13 |
именно хотя сказанное зависит от самого накопителя , ведь в RAID массивах головок больше Это сообщение отредактировал(а) wester - 22.7.2009, 21:18 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |