PLComp
834 subscribers
3 files
102 links
Языки и компиляторы: вопросы реализации от входного синтаксиса до порождения машинного кода.
Авторы: @vekazanov @igorjirkov @true_grue @clayrat @eupp7 @alexanius @AntonTrunov @GabrielFallen @ligurio
Download Telegram
Бенчмарки показали жизнеспособность подхода MVS — производительность оказалась на уровне между Scala Native и Swift. Отставание от Swift авторы объясняют тем, что в прототипе не использовались более продвинутые оптимизации, в частности, уменьшающие количество обращений к счётчику ссылок. Таким образом подход имеет перспективы значительного дальнейшего улучшения за счёт комбинирования с другими известными оптимизациями (например, упоминавшийся Perceus).

C++ в бенчмарках использовался в качестве реализации наивного подхода "копируем всё и всегда, но с агрессивными компиляторными оптимизациями", поэтому ожидаемо показал худшую производительность, кроме тестов с преобладающим количеством изменений "по месту" с передачей аргументов через inout параметры.

По итогу, MVS предлагает перспективную, формально проработанную семантику для производительных и (более) безопасных прикладных императивных языков программирования. Применимость для системных языков остаётся под вопросом как из-за недостаточной проработанности вопроса оптимизаций на текущий момент, так и по причине ограничений модели программирования, не позволяющей выражать алгоритмы, полагающиеся на использование указателей (в противовес индексам и хэндлам).

#mutable_value_semantics #swift #CoW
👍24