В некоторых случаях важен не столько объем используемой памяти, сколько метод работы с ней. Предположим, что в вашей программе используются записи трех типов (х, у и z), причем все записи одинакового размера. В некоторых языках программирования вам может показаться удобным объявить, скажем, 10 000 объектов каждого типа. Но что, если вам понадобится 10 001 запись типа х и ни одной записи типов у и z? Программа завершит работу с сообщением об ошибке, попытавшись обратиться к 10 001 записи, в то время как 20 000 других выделенных записей останутся неиспользованными. Динамическое выделение памяти позволяет избежать подобных очевидных затрат, предоставляя программисту возможность выделять память под объекты по мере необходимости.
Динамическое выделение подразумевает, что нет необходимости запрашивать память под объект до тех пор, пока он не понадобится. Можно работать с записями переменного размера, то есть выделять под объект ровно столько памяти, сколько нужно. Во времена перфокарт, когда записи состояли из 80 колонок, обычным делом было наличие на диске более половины дополняющих пробелов. В файлах переменной длины конец строки обозначался символом перевода строки, поэтому емкость дисков при использовании таких файлов удваивалась. Однажды мне удалось утроить скорость ввода и вывода программы, используя записи переменной длины. Максимальная длина записи была 250 символов, но в среднем использовалось только 80 из них.
Опубликовал vovan666
April 17 2013 00:01:52 ·
0 Комментариев ·
3863 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.