alefedos
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Именно FlashGet съедает 100% процессора при условиях, которые я описывал выше. Если запустить отдельно MPC или WMP проигрывать любой сжатый видеофайл или DVD, то съедаться будет не более 10%, при закачке FlashGet файлов в несколько сотен мегабайт со скоростью 20-30кбайт/сек в 2 потока процессор не задействуется сколько-нибудь значительно. | Тут всё кажется достаточно просто (IMHO). По моему предположению у тебя винчестер захлёбывается. Дело вот в чём. Если не настроить FlashGet, то по умолчанию через каждые 4 килобайта он производит сохранение на хард. Винчестер в принципе готов так же, как и сам FlashGet, работать с очередью заданий. Но представь на секунду, что винчестер пытается успевать сохранять сразу несколько файлов, при этом сохранение подразумевает немедленную верификацию (проверку записи). В случае с одним файлом каких-либо серьёзных сложностей нет, но если таких файлов несколько? Помнишь, FlashGet резервирует место на харде для каждого файла? Прибавь сюда время поиска. А тут ещё эти "кривые" программы для просмотра видео! Они же юзают хард по-страшному, иногда даже тормозят из-за этого! Даже, когда кэшируют файл в память, свой кэш они наполняют маленькими порциями, сильно нагружая хард. При этом, пока операция записи не будет помещена в очередь заданий харда (я про буфер говорю), твоя программа будет "кушать" процессорное время. А теперь про возможное решение. Разумеется, о создании Ramdisk'a для помещения в него фильмов говорить глупо. О тонкостях кэширования у различных видеоплейеров тоже не буду говорить (для разных файлов почему-то разная ситуация). А вот FlashGet... "Настройки" --> "Общие" --> "Записывать данные на диск каждые ххх КБ". У меня ADSL 160/128 КБит в сек, а ххх=100. Для 1 Мбит я бы ставил не менее 500. Удачи! |