Джонсон Харт - Системное программирование в среде Windows
- Название:Системное программирование в среде Windows
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2005
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0879-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джонсон Харт - Системное программирование в среде Windows краткое содержание
Эта книга посвящена вопросам разработки приложений с использованием интерфейса прикладного программирования операционных систем компании Microsoft (Windows 9х, Windows XP, Windows 2000 и Windows Server 2003). Основное внимание уделяется базовым системным службам, включая управление файловой системой, процессами и потоками, взаимодействие между процессами, сетевое программирование и синхронизацию. Рассматривается методика переноса приложений, написанных в среде Win32, в среду Win64. Подробно описываются все аспекты системы безопасности Windows и ее практического применения. Изобилие реальных примеров, доступных также и на Web-сайте книги, существенно упрощает усвоение материала.
Книга ориентирована на разработчиков и программистов, как высокой квалификации, так и начинающих, а также будет полезна для студентов соответствующих специальностей.
Системное программирование в среде Windows - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Монитор производительности Windows, доступный через пиктограмму Administrative Tools (Администрирование), находящуюся в панели управления, отображает данные о работе процессора, ядра, пользовательских и других процессов в графическом виде. Это средство предоставляет отличные дополнительные возможности для изучения свойств программ помимо тех, которые обеспечиваются приведенными здесь результатами измерений.
Полученные результаты указывают на варьирование производительности в широких пределах в зависимости от используемых ЦП, файловой системы, дисковой конфигурации, особенностей программы, а также множества других факторов. Все программы, применяемые для проведения необходимых измерений, находятся на Web-сайте книги, что дает вам возможность самостоятельно выполнить эти тесты на своей системе.
Копирование файлов
Пять различных вариантов реализации программ копирования файлов использовались для копирования файла размером 25,6 Мбайт (400 000 записей размером 64 байта каждая, сгенерированных с помощью программы RandFile из главы 5). В первых двух столбцах табл. В.1 представлены результаты, полученные на лэптопе (LT) устаревшей модели, в котором установлен процессор Pentium с частотой 500 МГц, что позволяет сопоставить между собой показатели производительности в случае файловых систем NTFS и FAT.
1. Программа cpC (программа 1.1) использует библиотеку С. В этом тесте измеряется эффект варианта реализации, выполняющегося поверх Windows, хотя библиотека и предоставляет возможность использования эффективной буферизации или применения других методик.
2. Программа cpW (программа 1.2) является реализацией, в которой используются непосредственно средства Windows с буфером небольшого размера (256 байт).
3. Программа cpwFA — "быстрый" вариант реализации с использованием буфера большого размера (8192 байта, что кратно размеру сектора диска на всех хост-системах) и флагов Windows, задающих последовательный режим обработки как для входных, так и для выходных файлов.
4. Программа cpCF (программа 1.3) использует функцию Windows CopyFile для выяснения того, является ли реализация, ограничивающаяся единственным системным вызовом, более эффективной по сравнению с другими методиками.
5. Программа cpUC (программа 1.1) — реализация в стиле UNIX, использующая буфер небольшого размера (аналогично программе cpW). Эта программа была незначительно изменена, чтобы обеспечить возможность использования библиотеки совместимости с UNIX, входящей в состав Visual C++.
В то время как приведенные результаты представляют величины, усредненные по пяти тестовым запускам, сами значения истекшего времени могут меняться в широких пределах. Так, для программы cpUC (последний ряд) среднее значение истекшего времени в третьем столбце данных (Pentium LT, W2000) составило 7,77 секунды, тогда как минимальное и максимальное значения составляли соответственно 1,87 и 11,71 секунды. Такая широкая вариация значений была типичной почти во всех случаях и на всех системах.
1. Применение файловой системы NTFS вовсе не гарантирует лучшую по сравнению с системой FAT производительность. Более того, иногда более быстрой оказывается именно FAT, в чем можно убедиться, сравнивая данные, приведенные в столбцах 1 и 2.
2. Библиотеки совместимости С и UNIX обеспечивают сопоставимую производительность, которая во многих случаях превосходит производительность простейших вариантов реализации, использующих средства Windows.
3. Процессорное время, потребляемое как функциями ядра ("Системное время"), так и пользовательскими функциями ("Пользовательское время"), является минимальным. Следовательно, быстродействие процессора оказывает лишь самое незначительное влияние на производительность, оцениваемую по истекшему времени.
4. Как и следовало ожидать, высокопроизводительные серверные SMP-системы действительно обеспечивают гораздо более быструю обработку файлов, чем лэптопы и PC. Дополнительные тесты, выполненные в системе Windows Server 2003, обладающей еще более высоким быстродействием, показали еще лучшие результаты (здесь они не представлены), причем значения истекшего времени оказались примерно в два раза меньшими по сравнению со значениями, приведенными в крайнем справа столбце таблицы.
5. Использование буферов большого размера, флагов последовательной обработки или функции CopyFile не обеспечивают систематического или существенного выигрыша в производительности, оцениваемой по истекшему времени. Вместе с тем, весьма небольшие значения показателей пользовательского времени для программ cpwFA и cpCF представляют интерес, и этим можно воспользоваться в некоторых ситуациях, даже если показатели истекшего времени при этом не улучшатся. Одна из систем, а именно, лэптоп с процессором Pentium, не подходит под данное обобщение. Как ранее уже отмечалось, процессорное время составляет лишь небольшую долю истекшего времени.
6. Показатели истекшего времени являются в высшей степени переменчивыми, причем в некоторых случаях отношение результатов, полученных в идентичных тестах, которые выполнялись в идентичных условиях, достигало значения 10:1.
Таблица В.1. Показатели производительности программ копирования файлов
ЦП | Pentium III | Pentium III | Pentium LT | Celeron LT | Xeon | 4×Xeon | |
---|---|---|---|---|---|---|---|
ОС | W2000 | W2000 | W2000 | XP | W2000 | W2000 | |
Файловая система | FAT | NTFS | NTFS | NTFS | NTFS | NTFS | |
cpC | Реальное время | 8,62 | 14,69 | 12,75 | 7,23 | 6,03 | 2,67 |
Пользовательское время | 0,12 | 0,12 | 0,10 | 0,10 | 0,09 | 0,06 | |
Системное время | 0,24 | 0,52 | 1,39 | 0,39 | 0,25 | 0,36 | |
cpW | Реальное время | 8,49 | 13,35 | 25,48 | 7,10 | 8,94 | 2,95 |
Пользовательское время | 0,13 | 0,12 | 0,06 | 0,04 | 0,04 | 0,13 | |
Системное время | 0,88 | 1,37 | 4,61 | 0,62 | 0,56 | 0,13 | |
cpwFA | Реальное время | 8,35 | 12,59 | 7,35 | 8,25 | 9,10 | 2,36 |
Пользовательское время | 0,01 | 0,02 | 0,03 | 0,01 | 0,01 | 0,02 | |
Системное время | 0,40 | 0,50 | 0,82 | 0,29 | 0,20 | 0,19 | |
cpCF | Реальное время | 8,00 | 11,69 | 2,57 | 6,50 | 7,62 | 2,97 |
Пользовательское время | 0,02 | 0,01 | 0,02 | 0,02 | 0,01 | 0,02 | |
Системное время | 0,19 | 0,25 | 0,53 | 0,19 | 0,12 | 0,17 | |
cpUC | Реальное время | 7,84 | 13,14 | 21,01 | 9,98 | 7,77 | 3,53 |
Пользовательское время | 0,72 | 0,66 | 0,47 | 0,34 | 0,34 | 0,42 | |
Системное время | 0,40 | 0,67 | 3,12 | 0,34 | 0,36 | 0,41 |
Преобразование символов из кодировки ASCII в Unicode
Измерения выполнялись для восьми программ, каждая из которых преобразовывала файл размером 12,8 Мбайт в файл размером 25,6 Мбайт. Соответствующие результаты представлены в табл. В.2.
Читать дальшеИнтервал:
Закладка: