Yams

|
Posted: Fri Jan 19, 2007 22:10 Post subject: |
|
|
Небольшой оффтоп:
Quote: | Вопрос: как соотносятся t(X)+t(Y) и t(X+Y)? |
Как ни странно, но неравенство на современных компьютерах будет вот таким вот: t(X)+t(Y) > t(X+Y)
Поясню. Как вводное, прописные истины о зависимостях: скорость копирования зависит от железа и от операционной системы. От железа - насколько быстро процессор прогонит через себя информацию, насколько быстро раскрутится диск, и т.д. От операционки - как она по-умному использует предоставленные ей ресурсы.
Так вот, для WinXP я лично заметил такую интересную вещь: в случае выполнения одной задачи ось загружает процессор на 80-90%. Видимо, 10% оставляет для реагирования на пользовательские действия. В случае выполнения двух операций загрузка достигает 100% в случае, если пользователь не трогает клаву/мышь. Как только начинаю возить мышью по экрану, общий процент падает до 80-90%. Использовал Process Explorer, WinXPSP2. Процессы, которые я запускал, совершенно различные, но файловые: запись на ДВД, копирование/перенос, поиск тулсой дубликатов изображений и т.п.
Кроме того, WinXP отвратительно работает с двухъядерниками: она не умеет запускать одну программу сразу на двух ядрах. Две на двух - пожалуйста, а вот распараллелить потоки одной программы на два ядра она не умеет. Тестировал при помощи Тотала на машине друга, результат - всегда 50% загрузка на 2, 3 и более процессах копирования. Здесь могу ошибаться!!! Проверял только на одной машине
По поводу неравенства пояснение: для пользователя совместный процесс будет длиться конечно же медленней, ежели он будет делать это же пошагово. Это уже психология, а не работа компа Но в реальности быстрее будут проходить именно два одновременно работающих процесса, а не идущие друг за другом.
Чтобы не совсем оффтоп:
На мой взгляд, идеи с .bat-файлом или переименованием файла при копировании и есть решение искомой задачи. _________________ In Pascal we trust |
|