Преобразование символов из кодировки ASCII в Unicode

Измерения производились для восьми программ, любая из которых преобразовывала файл размером 12,8 Мбайт в файл размером 25,6 Мбайт. Надлежащие результаты представлены в табл. В.2.

1. Программка atou (программка 2.4) сравнима с программкой cpW, использующей буфер маленького размера.

2. Программка atouSS — 1-ый из "стремительных" вариантов реализации, основанных на программке atou. В нем используются флаги поочередного режима обработки Преобразование символов из кодировки ASCII в Unicode и буфер маленького размера. Эта, также две последующие программки сгенерированы на базе 1-го и такого же проекта, atouLBSS, но с определением различных композиций макросов.

3. Программка atouLB употребляет буфер огромного размера (8192 б), но не употребляет флаги поочередного режима обработки.

4. Программка atouLSFP употребляет буфер огромного размера и флаги поочередного Преобразование символов из кодировки ASCII в Unicode режима обработки, но не считая этого за ранее устанавливает требуемый размер выходного файла. Эта мера показала свою высшую эффективность.

5. Программка atouMM употребляет отображение файлов для операций файлового ввода/вывода и вызывает функции, листинг которых приведен в программке 5.3.

6. Программка atouMT представляет собой многопоточную реализацию приведенной в главе 14 программки, основанной на схеме множественной буферизации Преобразование символов из кодировки ASCII в Unicode без внедрения асинхронного ввода/вывода.

7. Программка atouOV (программка 14.1) употребляет перекрывающийся ввод/вывод и не может производиться на 2-ух системах семейства Windows 9x.

8. Программка atouEX (программка 14.2) употребляет перекрывающийся ввод/вывод и не будет производиться на 2-ух системах семейства Windows 9x.

Комменты

1. Результаты демонстрируют, что применение буферов увеличенного размера и флагов Преобразование символов из кодировки ASCII в Unicode поочередной обработки (а может быть, и сочетания этих причин) обеспечивает некий выигрыш в производительности.

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

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

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

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

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

Таблица В.2. Характеристики производительности программ преобразования Преобразование символов из кодировки ASCII в Unicode знаков из шифровки 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 Преобразование символов из кодировки ASCII в Unicode Реальное время 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


preobrazuyushie-dialogi-uchebnik-po-prakticheskim-tehnikam-dlya-sodejstviya-lichnostnim-izmeneniyam-per-s-angl-kiev-d-a-ivahnenko-1997-400-s-ill-stranica-15.html
preodolenie-barera-vospriyatiya.html
preodolenie-biogeneticheskih-podhodov-k-issledovaniyu-psihiki-rebyonka-kursovaya-rabota.html