Буквально вчера понял почему Windows 7 занимает 18 Гбайт, а Windows 98 только 195 Мбайт. Ходил по квартире у глупо хихикал. Смотрите. Вот пишу я модель морского боя. У него есть переменная - текущее время. Когда я это делал сам для себя то у меня была глобальная переменная в модуле расчета и я мог обратится напрямую без каких-либо выкрутасов прямо к ней в любом нужном мне месте. Но теперь то работаем по серьезному, все как положено, ООП, наследования, выделение всякой самодостаточной ерунды в отдельные классы, для каждого пука своя процедура, даже если она только один раз вызывается. И вот то-же самое текущее время. Глобальных переменных нет. Классы переменные находящиеся внутри другого класса переменные из него не видят, поэтому в части классов эта переменная дублируется, создаются процедуры для ее установки, пишется код который вызывает эти процедуры. В других классах вводятся указатели на базовые классы с их последующей инициализацией, что бы каждый класс мог найти тот где есть нужная нам переменная, а при использовании, что бы код был читаем вводятся короткие временные переменные куда из длинной цепочки указателей класса на класс пишется значение из нужной переменной. Вот так две строчки текста кода превращаются в две страницы, с используемым объемом памяти происходит то-же самое. А таких переменных могут быть десятки, сотни, тысячи.

@темы: Мысли вслух