Windows говно - вот факты
Работа макроса REALLOC сильно зависит не только от наличия свободной памяти, но и от операционной системы. Например в большинстве компьютеров под управлением Linux (а так-же *BSD) свободной памяти обычно нет вообще - вся память занята под разные буфера и кеши. Потому перед выделением новой области приходится сначала освободить доступную память. Естественно, это вовсе не говорит о том, что в виндовс что-то будет работать быстрее: просто в win нам придётся читать весь файл с диска, что в сотни раз медленнее, в Linux в подавляющем большинстве случаев наш файл уже будет лежать в одном из кешей, а вот маздай постирает нафиг его оттуда, чтоб всякие монстры вроде M$Word могли запустится за более-менее обозримое время, даже на устаревших компьютерах с 2Gb оперативной памяти на борту. (это не шутка и не опечатка, это довольно печальный факт).
Почему-же в ОС виндовс такой плохой менеджер памяти? Ответ очень прост: он не плохой, он просто очень старый. Сегодня программы занимают примерно столько-же места, что и раньше (нет, дистрибутивы программ со всякими рюшечками и картинками занимают в разы больше, но только дистрибутивы. В память грузится только основная часть программы и несколько основных рюшечек). К примеру, последняя версия sed занимает 99К, а старая версия (пятилетней давности) занимает 85К, при этом, общий объём памяти за последние 5 лет увеличился более чем в 10 раз! Ситуация с другими программами такая-же.
Потому, преимущества менеджера памяти Windows можно заметить только при запуске огромных программных комплексов, да ещё и только таких, которые запускаются самим пользователем, в ручную, и причём запускаются все целиком, в 58и окошках и пр. Например M$Office, или Firefox (особенно если там последняя сессия с 33я вкладками, причём во вкладках открыты сайты, написанные криворукими кодерами, которые совсем не оптимизированы (а даже криворукие кодеры обожают выносить свой кривой код на сторону клиента - она всегда бесплатная, в отличие от сервера)). Возможно, преимущества менеджера памяти виндовс были-бы заметны в программах, которые сначала грузят большой объём данных(хотя-бы 20% от RAM), а затем пишут его обратно на диск, но такие программы (например архиваторы с сжатием) всегда (насколько мне известно) выполняют настолько сложные действия, что копеечный выигрыш от распределителя памяти становится незаметным.
Это не удивительно: если действия простые, то их можно и нужно выполнять потоком, как например делает это sed, по той причине, что одна и так-же программа будет успешно выполнять действия и с файлом в 10К, и с файлом в 10Гб, независимо от объёма имеющейся памяти: вендовый блокнот - хороший пример, если в 9х он вообще не умел открывать большие файлы, то в NT5 это "исправили", просто убрали проверку - теперь большие файлы открываются часами, а если и откроются, то их невозможно отредактировать, информация в них молча и необратимо исчезает. (большие - сравнительно с объёмом ОЗУ, если у вас 2Гб, то файлы размером 200Мб для вас уже большие).
поэтому Выбирайте Linux а Windows пишут сейчас индусы!!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 884 просмотра