Информация об изменениях

Сообщение Re[18]: Упоротость С++ от 08.09.2023 12:41

Изменено 08.09.2023 12:55 Serginio1

Re[18]: Упоротость С++
Здравствуйте, so5team, Вы писали:


S>АОТ -- это всего лишь Ahead of Time. Т.е. один из способов получения кода для исполнения. Вы хотите сказать, что GC присутствует только во время AOT компиляции программы, а после компиляции GC уже нет?

За GC отвечает отдельная DLL ка. Но в коде С++ присутствует код для сборки мусора.
https://learn.microsoft.com/ru-ru/windows/uwp/dotnet-native/net-native-and-compilation

.NET Native заменяет полную среду CLR на оптимизированную среды выполнения, которая в первую очередь содержит сборщика мусора. Оптимизированная среда выполнения находится в библиотеке mrt100_app.dll, которая является локальной для приложения и имеет размер только несколько сотен килобайт. Это возможно потому, что статическое связывание устраняет необходимость во многих операциях, реализуемых средой CLR.


Это относится к UWP шному .NET Native. .Native AOT должен быть таким же.

Вот D тоже исплользует сборку мусора. Но никакой среды у него нет.
Re[18]: Упоротость С++
Здравствуйте, so5team, Вы писали:


S>АОТ -- это всего лишь Ahead of Time. Т.е. один из способов получения кода для исполнения. Вы хотите сказать, что GC присутствует только во время AOT компиляции программы, а после компиляции GC уже нет?

За GC отвечает отдельная DLL ка. Но в коде С++ присутствует код для сборки мусора.
https://learn.microsoft.com/ru-ru/windows/uwp/dotnet-native/net-native-and-compilation

.NET Native заменяет полную среду CLR на оптимизированную среды выполнения, которая в первую очередь содержит сборщика мусора. Оптимизированная среда выполнения находится в библиотеке mrt100_app.dll, которая является локальной для приложения и имеет размер только несколько сотен килобайт. Это возможно потому, что статическое связывание устраняет необходимость во многих операциях, реализуемых средой CLR.


Это относится к UWP шному .NET Native. .Native AOT должен быть таким же.

Вот D тоже исплользует сборку мусора. Но никакой среды у него нет.
https://ru.wikipedia.org/wiki/D_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)#%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E

При этом можно включать и отключать сборку мусора

D использует сборщик мусора для управления памятью, однако возможно и ручное управление с помощью перегрузки операторов new и delete, а также с помощью malloc и free, аналогично C. Сборщик мусора можно включать и выключать вручную, можно добавлять и удалять области памяти из его видимости, принудительно запускать частичный или полный процесс сборки. Существует подробное руководство, описывающее различные схемы управления памятью в D для тех случаев, когда стандартный сборщик мусора неприменим.