Читаем Системное программирование в среде Windows полностью

2. Предварительная установка размера выходного файла (atouLSFP) очень эффективна и приводит к резкому повышению производительности на всех однопроцессорных системах. В то же время, преимущества SMP-систем оказались весьма незначительными. Эту же методику можно было применить и в предыдущих примерах копирования файлов.

3. В этих примерах процессорное время составляет лишь незначительную долю общего времени.

4. Помимо того, что использование перекрывающегося ввода/вывода ограничивается системами Windows NT и его трудно программировать, он обеспечивает очень низкую производительность. Заметьте, что основная доля общего времени приходится не на пользовательское или системное время, а на реальное время. Создается впечатление, что в случае NT4 система испытывает трудности с планированием доступа к диску, и это препятствие нельзя было устранить путем изменения размера буфера (как большую, так и в меньшую сторону) до тех пор, пока не были использованы буферы размером 65 Кбайт. В NT5 эта проблема не возникает.

5. Ни расширенный ввод/вывод, ни многопоточный режим не обеспечивают сколько-нибудь заметного повышения производительности.

6. Использование отображения файлов в операциях ввода/вывода способно увеличивать производительность, обеспечивая ее повышение примерно на 30% по сравнению с остальными методами. Результаты для SMP-сервера оказались еще лучшими.


Таблица В.2. Показатели производительности программ преобразования символов из кодировки ASCII в Unicode

ЦП Pentium III Pentium III Pentium LT Celeron LT Xeon 4×Xeon
ОС W2000 W2000 W2000 XP W2000 W2000
Файловая система FAT NTFS NTFS NTFS NTFS NTFS
atouРеальное время3,247,1633,536,275,772,77
Пользовательское время0,310,330,010,060,060,08
Системное время0,460,723,550,540,630,63
atouSSРеальное время3,776,2143,5310,125,682,48
Пользовательское время0,200,230,110,070,040,14
Системное время0,520,813,170,040,350,81
atouLBРеальное время4,386,4128,515,954,752,47
Пользовательское время0,100,070,050,030,030,08
Системное время0,260,340,630,190,210,187
atouLSFPРеальное время--5,171,381,282,03
Пользовательское время--0,070,050,090,06
Системное время--0,610,160,100,11
atouMMРеальное время4,352,753,463,903,740,77
Пользовательское время0,270,290,090,070,050,14
Системное время0,190,190,160,140,100,09
atouMTРеальное время4,846,185,836,615,993,55
Пользовательское время0,140,150,260,040,060,02
Системное время0,450,460,660,330,150,31
atouOVРеальное время9,548,8532,426,845,633,17
Пользовательское время0,140,120,210,060,060,06
Системное время0,240,230,420,180,210,17
atouEXРеальное время5,675,9230,656,505,192,64
Пользовательское время1,101,500,290,350,410,64
Системное время1,191,740,770,690,591,91

Поиск заданных комбинаций символов

Тестирование производительности путем выполнения поиска определенных текстовых шаблонов в содержимом файлов производилось с использованием трех различных методов, что позволило оценить сравнительную эффективность многопоточного и многопроцессного режимов, а также простой последовательной обработки файлов (см. табл. В.З).

1. Программа grepMP (программа 6.1) использует параллельные процессы, каждый из которых обрабатывает отдельный файл. Результаты измерений системного и пользовательского времени не приводятся, поскольку программа timep позволяет хронометрировать лишь родительские процессы.

2. Программа grepMT (программа 7.1) использует параллельные потоки.

3. Программа grepSQ — это пакетный файл DOS, обеспечивающий выполнение поиска шаблонов по очереди в каждом из файлов. В этом случае также приводятся только результаты, относящиеся к реальному времени.

В этом тесте использовались 20 файлов с размерами в пределах от нескольких Кбайт до 1 Мбайт.

Комментарии

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже