Интересно.
review from 2007 содержит следующее:
{smartassembly} использует несколько различных методы, чтобы сбить памяти использования.
Мы попросили разработчиков {smartassembly} для некоторых из специфики, и они сказали нам, что по умолчанию среда СЕК оставляет за тонну памяти для сборок .NET - будь или не просить они его. Так {smartassembly} разумно обнаруживает , когда процессор находится в режиме ожидания (или около того) и увеличивает или уменьшает количество резервируемой памяти для сборки в соответствии с его требованиями - «автоматизированном» GC в некотором смысле, за исключением того, что памяти может быть или, возможно, никогда не использовался .
В том же ключе, {} smartassembly (с преимуществом буквально имея доступ к коду благодаря источнику в пути .NET предназначен) отмечает все и все классы, которые не имеют какие-либо обнаруживаемых классы «ребенок» унаследовавшие из них, как «запечатаны», тем самым уменьшая объем памяти и процессора, используемого Среда CLR во время выполнения, чтобы определить, какие функции должны быть сделаны доступными для других классов и библиотек.
В этом же обзоре имеется пара скриншотов «до/после», показывающая приложение от 8M до 420K. Это говорит о том, что на самом деле это просто сокращает рабочий набор приложения, а не реальные требования к памяти. Такая же «оптимизация» появляется, если вы сворачиваете приложение. Это не занимает меньше памяти. Я не верю, что настольная платформа .NET может действительно работать только с 420K.
Функция автоматического уплотнения интересна - я не вижу, что она помогает, кроме поиска виртуальных методов. Я сомневаюсь, что влияние действительно значимо, но, конечно, я не сравнивал его.
Итак, ничего убедительного, но я сомневаюсь, что он делает все, что я особенно хочу.
Спасибо Jon. Именно то, что я искал. – 2008-12-04 09:07:47