Примерно год назад появились первые флэшдрайвы с интерфейсом USB 2.0, через некоторое время их доля в общем объеме подобной продукции стала значительной, ну а сегодня уже можно утверждать, что процесс переориентации производителей полностью закончился. Выпускать устаревшие модели с интерфейсом USB 1.1 просто невыгодно. Некоторое время процесс сдерживался невысокими характеристиками контроллеров, которые, в частности, на операциях записи не были способны обогнать многие из старых моделей. Однако появление новых контроллеров от Prolific, Phison и, в особенности, OTi быстро расставило все на свои места.
Последние контроллеры появились совсем недавно, однако быстро успели завоевать популярность, благодаря очень высокой скорости работы и удобному ПО, наделяющему накопитель дополнительными возможностями, такими, как парольная защита или загрузка компьютера. Тесты подтвердили высокие эксплуатационные характеристики накопителей на OTi, цены на различные флэшдрайвы отличаются несильно (больше зависят от емкости и цены нанесенной на корпус торговой марки, нежели от контроллера), так что ничего удивительного, что покупали такие модели весьма охотно. И вот тут-то многие начали сталкиваться с проблемами.
Нет, никаких подводных камней в самих контроллерах нет — все действительно работает так, как обещано. Вполне комфортно себя чувствовали и пользователи, использующие для копирования файлов стандартный Windows Explorer и некоторые файловые менеджеры, почти не пострадали обладатели FAR версии 1.70b5. А вот любителям Total Commander, коих немало, или пользователям старых версий FAR, коих тоже достаточно, поскольку последняя версия уже больше года никак не выйдет из состояния бета-версии, а подобное многие устанавливать на компьютер боятся, пришлось несладко.
Что же случилось? Возьмем один из накопителей на базе OTi, а именно x-Drive USB Bar, который мы недавно тестировали, и попробуем записать на него какой-нибудь большой файл при помощи Total Commander 32 6.01 от 3 декабря закончившегося недавно года (т. е. версия более чем свежая).
Несколько неожиданный результат, если не сказать сильнее. Накопитель согласно низкоуровневым тестам обеспечивает скорость записи более шести мегабайт в секунду, файл мы пишем один и размером 57 мегабайт (да и даже на большом количестве мелких файлов катастрофического падения скорости быть не должно, поскольку накопитель обеспечивает среднее время доступа в районе 0,5 мс) — все должно быть быстро и хорошо, а процесс обязан завершиться за несколько секунд (около 10, но могут быть и небольшие накладные расходы), но никак не за две минуты. Куда девалась скорость?
Вопрос крайне интересный. Опробовав несколько способов записи, можно прийти к выводу, что ошибка кроется где-то в недрах Total Commander, а совсем не во флэшке или ее драйверах: ведь последняя версия FAR или «Проводник» работают нормально, не опровергая результатов низкоуровневых тестов. Однако многим такой вариант развития событий и в голову-то не приходил: много лет пользовались TC, он полностью удовлетворял потребности, становясь от версии к версии все лучше и лучше, а флэшку-то в первый раз такую увидели :) Опять же: читается все с той скоростью, как и положено, а подобный дисбаланс скорости чтения и записи уже встречался при использовании контроллеров от Prolific, так что можно заподозрить и OTi в таком же поведении. Что ж — фанатов ТС спешу успокоить: виновата программа, однако виновность у нее не врожденная, а, скажем так, результат «плохого воспитания» под которым можно понимать процесс настройки после установки на компьютер. Вот многие ли настраивают хоть что-то, кроме внешнего вида? А зря. В качестве доказательства — пишем тот же файл на тот же накопитель той же программой, но после затраты секунд 10 времени на изменение пары параметров по-умолчанию.
Совсем другой результат, не так ли? :) Скорость копирования резко выросла аж в 15 раз и начала соответствовать результат тестовых программ. А в чем была проблема-то?
Дело в том, что стандартные функции операционной системы не во всех случаях справляются с работой наилучшим образом с точки зрения производительности. Основная их задача — работать всегда и везде. Именно поэтому во всех мало-мальски приличных файловых менеджеров для копирования используются свои, часто достаточно хитрые алгоритмы. Нередко они позволяют в одинаковых условиях добиться более высокой производительности — часто выигрыш достигает 10% и более. Согласитесь — возможность получить такой прирост на одном и том же оборудовании стоит того, чтобы поломать голову над усовершенствованием «дубоватых» подходов ОС. Однако, как это часто бывает, более сложный и умный вариант может попасть и впросак, если ему придется работать с чем-то, чего программист не учел. Протестировать же собственные функции копирования на всех возможных накопителям программист не может. Производитель же контроллеров тем более не обязан выискивать все файловые менеджеры для того, чтобы убедиться в том, что примененные им на аппаратном уровне ухищрения будут нормально сочетаться с методами, примененными работающим над по сути той же задачей программистом. Со стандартным программным обеспечением, естественно, все проверяется, а с альтернативным — извините.
Впрочем, о возможных проблемах своих супер-пупер алгоритмов программисты прекрасно знают (кто не знает, тот обычно просто еще не дошел до стадии, на которой можно написать путный файл-менеджер :)), так что всегда предусматривают возможность использовать вместо элегантных средств копирования собственной разработки дубовые, но надежные алгоритмы операционной системы. Но, по-умолчанию, это выключено. Почему? А потому, что, как я уже сказал, в противном случае процентов этак 90 пользователей вряд ли бы узнали, что данная программа способна после настройки увеличить скорость файловых операций. В результате, потенциал программы остался бы нераскрытым, и покупать ее не стали бы.
Теперь, думаю, вам понятно как была получена столь впечатляющая разница между первым и вторым скриншотами. Просто отправляемся в настройки и включаем режим совместимости.
Можно для одного диска (букву, под которой в системе появляется ваш накопитель, вы узнать можете легко, просто подключив его), можно для всех. Последнее делать не рекомендуется, поскольку в случае других дисков вы можете получить и потери производительности. Удобно, что эту настройку можно менять «на лету»: ничего не подключая и не отключая, и даже не перезапуская Total Commander.
Аналогично лечится проблема и в случае старых версий FAR, но там все несколько менее удобно: стандартную функцию копирования можно включить только для всех дисков. Впрочем, у пользователей этой программы всегда есть еще один выход — перейти на 1.70b5, где и проблема эта существенно ослаблена (6 Мбайт/с пользуясь встроенной, а не системной функцией копирования, получить не удастся — выйдет где-то 3-4 Мбайт/с, что все равно в три-четыре раза больше, чем в старых версиях и на порядок больше, чем в Total Commander), и новых возможностей масса. А работает она, как я уже убедился, превосходно, несмотря на то, что бета.
Про другие файл-менеджеры не скажу, поскольку ими не пользуюсь, но ход действий, надеюсь, понятен. Вообще, во всех случаях, когда софт начинает вести себя странно (или вы предполагаете, что он может себя так вести), всегда следует попробовать выполнить ту же операцию средствами операционной системы (когда это возможно) — очень может быть, что проблема не с оборудованием, а с самой программой. Тем более стоит задуматься в том случае, когда вы заведомо знаете, что результаты работы разных программ противоречат друг другу.
К сожалению, этим правилом пренебрегают не только «простые» пользователи. Вот недавно впросак попали наши коллеги из Ferra.ru, воспользовавшиеся при тестировании флэшдрайвов старой версией FAR. Мало того, что примерно половину статьи можно просто выкидывать, поскольку она не соответствует действительности, так еще и выводы сделали как раз на базе этой части. Кстати, кто-то еще будет продолжать утверждать, что использование «реальных приложений» более правильно, чем тестирование на синтетике? ;)
Такие вот результаты. Вообще обычно я не пишу статей по таким поводам (да и таких маленьких статей — обычно тоже :)), поскольку проблемы программного обеспечения (за исключением, разве что, драйверов и тестовых программ) не совсем наша специфика. Однако в данном случае все слишком уж связано с с основной темой, да и наступивших на эти грабли, судя по конференции, достаточно много (а сколько еще людей просто не задумывалось о том, что все работает на порядок медленнее, чем должно, приняв это как должное?). Да и очень уж показательный пример — как недостатки программных алгоритмов способны на корню зарубить все усовершенствования аппаратной части. Виноваты в этом авторы специализированных алгоритмов лишь отчасти — все-таки в большинстве случаев их разработки быстрее стандартных. Проблема глубже — где тонко, там и рвется. Современные компьютеры стали слишком уж сложными агрегатами, чем-то напоминающими карточный домик, способный если и не обрушится, то существенно перекоситься от малейшего изменения положения даже самой мелкой его составляющей.