Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Invision Power ... 65321
Организация зап... 63993
Модуль Forms 60879
Создание отчето... 60758
ТЕХНОЛОГИИ ДОСТ... 57086
Создание потоко... 56465
Пример работы с... 54337
Имитационное мо... 52534
Реклама
Сейчас на сайте
Гостей: 5
На сайте нет зарегистрированных пользователей

Пользователей: 13,065
новичок: railval
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование автовокзала + Отчет + Блок схема
Обработка задач на ЭВМ на GPSS + Пояснительная записка
Игра Sokoban на Delphi + Блок схемы

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
10.6. Задачи
1. В конце 70-х Стю Фелдман (Stu Feldman) написал компилятор языка FORTRAN 77, который с трудом помещался в 64 Кбайт, отводимые под код программы. Первоначально для экономии памяти он упаковал некоторые целочисленные переменные в наиболее ресурсоемких записях в четырехбитные поля. Отказавшись впоследствии от упаковки переменных, он обнаружил, что, хотя объем данных увеличился на несколько сот байт, полный объем программы уменьшился на несколько килобайт. Почему?
2. Как бы вы написали программу для построения структуры разреженной матрицы, описанной в разделе 10.2? Можете ли вы найти другие простые, но эффективные (в плане экономии памяти) структуры данных для этой задачи?
3. Каков суммарный объем всех дисков вашего компьютера? Какая его часть свободна? Сколько у вас оперативной памяти? Какая ее часть обычно доступна? Можете ли вы измерить объем различных видов кэш-памяти в вашей системе?
4. Изучите не имеющие отношения к компьютерам данные (в альманахах и тому подобном), стараясь найти примеры экономии занимаемого ими места.
5. На заре программирования Фред Брукс (Fred Brooks) столкнулся с другой проблемой представления бол ьшого массива на маленьком компьютере (помимо описанной в разделе 10.1). Вся таблица не могла храниться в массиве, поскольку на каждый из элементов приходилось несколько битов (одна десятичная цифра, если быть точным, — я же сказал, что дело было на заре программирования). Тогда он попытался использовать численный анализ, чтобы подобрать функцию, описывающую элементы таблицы. Ему действительно удалось найти такую функцию, которая позволяла почти точно получить все элементы таблицы (ни один из них не отличался от значения функции в соответствующей точке более, чем на несколько единиц), а сама функция занимала очень мало памяти, но установленные ограничения не позволяли считать точность приближения достаточной. Как удалось Бруксу достичь требуемой точности при использовании ограниченного объема памяти?
6. При обсуждении сжатия данных в разделе 10.3 мы упомянули декодирование выражения 10 * а + b с помощью операций % и /. Обсудите компромисс между занимаемым объемом памяти и быстродействием, на который в данном случае приходится идти, а также рассмотрите возможность замены этих операций на логические или на обращение к таблице.
7. В большинстве профилирующих программ (раздел 9.1) через равные промежутки времени записывается значение счетчика команд (program counter). Придумайте структуру данных для сохранения этих значений, которая была бы эффективной в плане быстродействия и занимаемой памяти, а данные в ней были бы достаточно информативны.
8. При использовании очевидного представления данных для сохранения даты требуется 8 байтов (ДДММГГГГ); номер социального страхования занимает 9 байтов (DDD-DD-DDDD), а имя человека занимает 25 байт (14 на фамилию, 10 на имя и 1 на первую букву отчества). Насколько вы сможете уменьшить эти числа, если перед вами стоит задача экономии памяти?
9. Уменьшите электронный словарь английского языка до минимального размера. При вычислении этого размера следует учитывать не только объем файла со словарем, но и объем программы-интерпретатора.
10. Звуковые файлы с необработанными данными (такие, как .wav) могут быть сжаты в формат .mp3. Необработанные графические данные (.bmp) могут быть преобразованы в .gif или .jpg. Фильмы можно переписать из .avi в .mpg. Проведите эксперименты с этими форматами файлов, чтобы определить их эффективность. Насколько эффективны эти специальные форматы сжатия по сравнению с программами сжатия общего назначения (такими, как gzip)?
11. Замечание читателя: «В современных системах важен не объем написанного, но объем используемого кода». Изучите свои программы, сравнивая их объем до и после компоновки. Как можно уменьшить этот объем?
Опубликовал vovan666 April 17 2013 03:02:17 · 0 Комментариев · 1773 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Основы Delphi. Пр...
Дарахвелидзе П., ...
Программирование ...
Text3D
Мод "проверочный ...
Win-Prolog 3.618
DelTrayIcon [Исхо...
TsHintManager
Самоучитель Прогр...
JanReplace
Профессиональное ...
ScreenSaver [Исхо...
MicroGPSS Studen ...
Globus VCL Extent...
С# для профессион...
Нестандартные при...
База Allsubmitter...
Цветной Grid
Медиа комбайн
Visual Basic Script

Топ загрузок
Приложение Клие... 100376
Delphi 7 Enterp... 83135
Converter AMR<-... 20046
Borland C++Buil... 11186
GPSS World Stud... 10962
Borland Delphi ... 8131
Turbo Pascal fo... 6973
Visual Studio 2... 4964
Калькулятор [Ис... 4376
FreeSMS v1.3.1 3510
Случайные статьи
Вложенные классы и...
Создание справки [...
Назначение класса ...
Программы-генераторы
Вычислительная мат...
Абстрактные типы д...
PHP: Почтовый робо...
Создание процесса ...
3.5. Пример: упо...
Таблицы имеют след...
сообщений электрон...
Аппаратные IP-теле...
Neosap - что к чему
5.1. Дополнительна...
Invalid subrange b...
Листинг 15.1. Форм...
Аргументом при сло...
Изменение направле...
• Специальные функ...
Подготовка к серти...
Если забыли пароль
Практикум 12-1: ра...
Как работает типов...
Нам нужны достаточ...
Структуры, объедин...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?