Навигация
Главная
Поиск
Форум
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
Invision Power ... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 65467
Модуль Forms 65224
Пример работы с... 64769
ТЕХНОЛОГИИ ДОСТ... 61928
Имитационное мо... 57799
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

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

Моделирование автомойки на GPSS + Отчет + Блок схемы
Двунаправленный динамический список на Delphi + Блок схемы
Моделирование работы участка термической обработки шестерен на GPSS + По...

Реклама



Подписывайся на 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 04:02:17 · 0 Комментариев · 2048 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
PHP 5 на примерах
Fig [Исходник на ...
Карта сайта
CS:Source - монит...
Delphi 2005. Разр...
Crypt32
Пример создания W...
Blib [Исходник на...
SUIPack
Изучаем Ассемблер
ZipForge
ProLIB18
Профессиональное ...
Page Promoter 7.7...
Просмотр файлов и...
Java 2. Наиболее ...
BDEPack
OnlineIP
CarGame [Исходник...
Web Регистрация

Топ загрузок
Приложение Клие... 100470
Delphi 7 Enterp... 87111
Converter AMR<-... 20078
GPSS World Stud... 12865
Borland C++Buil... 11849
Borland Delphi ... 8609
Turbo Pascal fo... 7039
Visual Studio 2... 4999
Калькулятор [Ис... 4806
FreeSMS v1.3.1 3542
Случайные статьи
Синхронизация
Можно работать!
Структуризация сис...
Класс TGraphic
Нерегулярные массивы
TGT для KDCw2k
Приоритеты и ресурсы
Границы ячейки
Создание иконки пр...
Предикат askable. ...
Термины страничной...
Моделирование элек...
Примечание Консорц...
COM и защита
если удалить строк...
Undefined type la ...
Подписки на новую ...
Квартиры на сутки ...
Организация ввода-...
S-Video
необходимы
Online игровые авт...
Коллекция диалогов
Максимальная разни...
работают
Статистика



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


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