Недавно я увидел два действительно приятных и обучающих языка:
Этот первый от Herb Sutter представляет все приятные и интересные функции С++ 0x, почему будущее С++ кажется ярче, чем когда-либо, и как M $считается хорошим парнем в этой игре. Разговор связан с эффективностью и тем, что минимизация активности кучи очень часто повышает производительность.
Этот другой, автор Andrei Alexandrescu, мотивирует переход от C/С++ к его новому игровому чейнджеру D. Большая часть материала D кажется действительно хорошо мотивированы и разработаны. Одна вещь, однако, удивила меня, а именно, что D толкает сборку мусора и что все классы создаются исключительно по ссылке. Еще более запутанным является то, что в книге "Руководство по программированию языка программирования D" в разделе "Управление ресурсами" говорится следующее:
Сбор мусора устраняет утомительный код отслеживания распределения памяти с ошибками необходимо в C и С++. Это не только означает гораздо более быстрое время разработки и расходы на обслуживание, но в результате программа часто работает быстрее!
Это противоречит постоянному разговору Саттера о минимизации активности кучи. Я очень уважаю идеи Саттера и Александреску, поэтому я немного смущен этими двумя ключевыми вопросами.
-
Не создает экземпляры экземпляра исключительно по результату ссылки во множестве ненужной активности кучи?
-
В каких случаях мы можем использовать сборку мусора без ущерба для производительности во время выполнения?