Системное программирование в среде Windows - страница 271

Шрифт
Интервал

стр.

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 Мбайт.

Комментарии

1. В большинстве случаев все три методики приводят к близким результатам на однопроцессорных системах. Исключением является лэптоп с процессором Pentium, для которого версия grepMP систематически оказывалась самой медленной.

2. Многопоточный режим обладает лишь незначительными преимуществами по сравнению с многопроцессным даже на однопроцессорных системах.

3. Показатели пользовательского и системного времени имеют ощутимо заметные значения лишь в случае многопоточных версий

4. SMP-системы демонстрируют выигрыш в производительности, который достигается и при использовании многопоточного режима или нескольких однопоточных процессов. Заметьте, что общее пользовательское время превышает реальное время, поскольку характеризует одновременно все четыре процесса.

5. Тот факт, что последовательная обработка файлов приводит на однопроцессорных системам к аналогичным результатам, говорит о том, что простейшее решение нередко оказывается и самым лучшим.


Таблица В.З. Показатели производительности программ поисказаданных комбинаций символов

ЦП Pentium LT Celeron LT Xeon 4×Xeon
ОС W2000 XP W2000 W2000
Файловая система NTFS NTFS NTFS NTFS
grepMPРеальное время14,723,9510,580,63
Пользовательское время----
Системное время----
grepMTРеальное время7,083,618,090,73
Пользовательское время0,300,410,272,23
Системное время0,090,470,130,28
grepSQРеальное время6,713,866,710,97
Пользовательское время----
Системное время----

Сортировка файлов

Для тестирования четырех вариантов реализации программ сортировки из главы 5 использовался целевой файл, состоящий из 100 000 записей размером 64 байта каждая (всего 6,4 Мбайт). Вывод отсортированного файла во всех случаях подавлялся, чтобы можно было оценивать только время, необходимое для выполнения собственно сортировки. После этого тестировалась многопоточная сортировка (программа 7.2) файла размером 25 Мбайт, состоящего из 400 000 записей размером 64 байта каждая, с использованием одной, двух и четырех потоков. В каждом отдельном запуске использовался отдельный файл, генерируемый программой RandFile, которая находится в каталоге главы 5. Результаты для разных запусков заметно различались между собой.


стр.

Похожие книги