Джонсон Харт - Системное программирование в среде Windows
- Название:Системное программирование в среде Windows
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2005
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0879-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джонсон Харт - Системное программирование в среде Windows краткое содержание
Эта книга посвящена вопросам разработки приложений с использованием интерфейса прикладного программирования операционных систем компании Microsoft (Windows 9х, Windows XP, Windows 2000 и Windows Server 2003). Основное внимание уделяется базовым системным службам, включая управление файловой системой, процессами и потоками, взаимодействие между процессами, сетевое программирование и синхронизацию. Рассматривается методика переноса приложений, написанных в среде Win32, в среду Win64. Подробно описываются все аспекты системы безопасности Windows и ее практического применения. Изобилие реальных примеров, доступных также и на Web-сайте книги, существенно упрощает усвоение материала.
Книга ориентирована на разработчиков и программистов, как высокой квалификации, так и начинающих, а также будет полезна для студентов соответствующих специальностей.
Системное программирование в среде Windows - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
1. Программа atou (программа 2.4) сопоставима с программой cpW, использующей буфер небольшого размера.
2. Программа atouSS — первый из "быстрых" вариантов реализации, основанных на программе atou. В нем применяются флаги последовательного режима обработки и буфер небольшого размера. Эта, а также две следующие программы сгенерированы на основе одного и того же проекта, atouLBSS, но с определением разных комбинаций макросов.
3. Программа atouLB использует буфер большого размера (8192 байта), но не использует флаги последовательного режима обработки.
4. Программа atouLSFP использует буфер большого размера и флаги последовательного режима обработки, но кроме этого предварительно устанавливает требуемый размер выходного файла. Эта мера продемонстрировала свою высокую эффективность.
5. Программа atouMM использует отображение файлов для операций файлового ввода/вывода и вызывает функции, листинг которых приведен в программе 5.3.
6. Программа atouMT представляет собой многопоточную реализацию приведенной в главе 14 программы, основанной на схеме множественной буферизации без применения асинхронного ввода/вывода.
7. Программа atouOV (программа 14.1) использует перекрывающийся ввод/вывод и не может выполняться на двух системах семейства Windows 9x.
8. Программа atouEX (программа 14.2) использует перекрывающийся ввод/вывод и не будет выполняться на двух системах семейства Windows 9x.
1. Результаты показывают, что применение буферов увеличенного размера и флагов последовательной обработки (а возможно, и сочетания этих факторов) обеспечивает некоторый выигрыш в производительности.
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,24 | 7,16 | 33,53 | 6,27 | 5,77 | 2,77 |
Пользовательское время | 0,31 | 0,33 | 0,01 | 0,06 | 0,06 | 0,08 | |
Системное время | 0,46 | 0,72 | 3,55 | 0,54 | 0,63 | 0,63 | |
atouSS | Реальное время | 3,77 | 6,21 | 43,53 | 10,12 | 5,68 | 2,48 |
Пользовательское время | 0,20 | 0,23 | 0,11 | 0,07 | 0,04 | 0,14 | |
Системное время | 0,52 | 0,81 | 3,17 | 0,04 | 0,35 | 0,81 | |
atouLB | Реальное время | 4,38 | 6,41 | 28,51 | 5,95 | 4,75 | 2,47 |
Пользовательское время | 0,10 | 0,07 | 0,05 | 0,03 | 0,03 | 0,08 | |
Системное время | 0,26 | 0,34 | 0,63 | 0,19 | 0,21 | 0,187 | |
atouLSFP | Реальное время | - | - | 5,17 | 1,38 | 1,28 | 2,03 |
Пользовательское время | - | - | 0,07 | 0,05 | 0,09 | 0,06 | |
Системное время | - | - | 0,61 | 0,16 | 0,10 | 0,11 | |
atouMM | Реальное время | 4,35 | 2,75 | 3,46 | 3,90 | 3,74 | 0,77 |
Пользовательское время | 0,27 | 0,29 | 0,09 | 0,07 | 0,05 | 0,14 | |
Системное время | 0,19 | 0,19 | 0,16 | 0,14 | 0,10 | 0,09 | |
atouMT | Реальное время | 4,84 | 6,18 | 5,83 | 6,61 | 5,99 | 3,55 |
Пользовательское время | 0,14 | 0,15 | 0,26 | 0,04 | 0,06 | 0,02 | |
Системное время | 0,45 | 0,46 | 0,66 | 0,33 | 0,15 | 0,31 | |
atouOV | Реальное время | 9,54 | 8,85 | 32,42 | 6,84 | 5,63 | 3,17 |
Пользовательское время | 0,14 | 0,12 | 0,21 | 0,06 | 0,06 | 0,06 | |
Системное время | 0,24 | 0,23 | 0,42 | 0,18 | 0,21 | 0,17 | |
atouEX | Реальное время | 5,67 | 5,92 | 30,65 | 6,50 | 5,19 | 2,64 |
Пользовательское время | 1,10 | 1,50 | 0,29 | 0,35 | 0,41 | 0,64 | |
Системное время | 1,19 | 1,74 | 0,77 | 0,69 | 0,59 | 1,91 |
Поиск заданных комбинаций символов
Тестирование производительности путем выполнения поиска определенных текстовых шаблонов в содержимом файлов производилось с использованием трех различных методов, что позволило оценить сравнительную эффективность многопоточного и многопроцессного режимов, а также простой последовательной обработки файлов (см. табл. В.З).
1. Программа grepMP (программа 6.1) использует параллельные процессы, каждый из которых обрабатывает отдельный файл. Результаты измерений системного и пользовательского времени не приводятся, поскольку программа timep позволяет хронометрировать лишь родительские процессы.
2. Программа grepMT (программа 7.1) использует параллельные потоки.
3. Программа grepSQ — это пакетный файл DOS, обеспечивающий выполнение поиска шаблонов по очереди в каждом из файлов. В этом случае также приводятся только результаты, относящиеся к реальному времени.
В этом тесте использовались 20 файлов с размерами в пределах от нескольких Кбайт до 1 Мбайт.
1. В большинстве случаев все три методики приводят к близким результатам на однопроцессорных системах. Исключением является лэптоп с процессором Pentium, для которого версия grepMP систематически оказывалась самой медленной.
2. Многопоточный режим обладает лишь незначительными преимуществами по сравнению с многопроцессным даже на однопроцессорных системах.
3. Показатели пользовательского и системного времени имеют ощутимо заметные значения лишь в случае многопоточных версий
Читать дальшеИнтервал:
Закладка: