Обратимся теперь к быстрым вычислениям в компьютерной технике. Пусть узел структуры данных (например, связного списка или хзш-таблицы) содержит целое число и указатель на другой узел:
struct node { int i, struct node *p, };
Задача на предварительную оценку: поместятся ли два миллиона таких узлов в 128 мегабайт памяти вашего компьютера?
Системный монитор у меня на машине показывает, что обычно из 128 Мбайт свободно около 85. (Я проверил этот факт, изменяя программу сдвига массива из главы 2 данной книги до тех пор, пока не начался свопинг на диск.) Но сколько памяти занимает один узел? Во времена 16-битных компьютеров указатель и целое заняли бы вместе 4 байта. Во время подготовки этого издания чаще всего использовались 32-битные целые и указатели, поэтому ответ будет 8 байт. Часто мне приходится компилировать программы и в 64-битном режиме, поэтому узел может занять и 16 байт. Ответ в конкретной системе можно получить, выполнив одну строку на языке С:
printf("sizeof(struct node)=Јd\n", sizeof(struct node)).
Опубликовал vovan666
April 16 2013 23:59:50 ·
0 Комментариев ·
3741 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.