Size: a a a

Compiler Development

2020 January 20

I

Ioann_V in Compiler Development
Да и не только он. Tc и Tbb аллокаторы тоже. Да и dl не промах. Если мы про однопоточку.
источник

M

MaxGraey in Compiler Development
Вообще все зависит от того что за данные, как часто они создаются и умирают, столько за раз и от этого уже выбирать аллокатор и контейнеры. Для одного случая взять тот же rust-smallvec для второго какой нибудь memory pool
источник

AT

Alexander Tchitchigin in Compiler Development
Doge Shibu
Задача просто чуть ли не самая неудачная для стандартных аллокаторов.

А так у меня сейчас в проекте на расте ручной работы с памятью нет, полет нормальный. Но аллокаций на куче у меня в принципе нет в горячей части приложения.

Есть места, где я бы как раз воспользовался бы кастомными аллокаторами и писал бы с иммутабельными структурами, но пока их нет, живу с мутабельными.
Но поскольку никакого исследования удачности/неудачности задач для разных аллокаторов нет - трудно понять заранее подойдёт конкретная задача или нет. Поэтому по умолчанию можно брать Haskell с его теперь двумя GC, и если оба плохо справляются - с умом переписывать на Rust "горячие" куски. 😃
источник

I

Ioann_V in Compiler Development
ГЦ, он же правда может вообще удалять большими кусками, большими чем 2метра. Вот Джем с таким сайзом и работает by default.
источник

DP

Dmitry Ponyatov in Compiler Development
Rustem B.
Тут есть, кто в LLVM IR разбирается
Есть статьи по типу «LLVM IR или как я написал свой компилятор»
Или «Моя жизнь после LLVM»?
Просто я даже в доках не могу понять пока, аккуратно всё, но всё друг на друге
Пытаюсь небольшой компилятор написать
Человекам нужно на следующей неделе показать/рассказать как пишутся компиляторы
А ля Калейдоскоп, только своё
WASM не айс?
источник

I

Ioann_V in Compiler Development
Для практического софта как мне кажется JeMalloc избыточный, и можно вытянуть dl malloc в каждом потоке. Без синхр. т. е
источник

RB

Rustem B. in Compiler Development
Dmitry Ponyatov
WASM не айс?
Не, я не сохну по вебу
источник

DS

Doge Shibu in Compiler Development
Alexander Tchitchigin
Но поскольку никакого исследования удачности/неудачности задач для разных аллокаторов нет - трудно понять заранее подойдёт конкретная задача или нет. Поэтому по умолчанию можно брать Haskell с его теперь двумя GC, и если оба плохо справляются - с умом переписывать на Rust "горячие" куски. 😃
Тут уже смотря насколько жалко ОЗУ, всё же гц имеют свой достаточно ощутимый оверхед на память.

Но для большинства задач с современными машиными, конечно же пофигу на ОЗУ.
источник

BD

Berkus Decker in Compiler Development
MaxGraey
wee_alloc медленный, он был создан для wasm и главная задача его быть компактным
любой другой bump allocator, не суть
источник

BD

Berkus Decker in Compiler Development
я думаю ты понял и так
источник

M

MaxGraey in Compiler Development
Berkus Decker
любой другой bump allocator, не суть
Это не bump аллокаторы и как раз очень даже суть
источник

BD

Berkus Decker in Compiler Development
Doge Shibu
Тут уже смотря насколько жалко ОЗУ, всё же гц имеют свой достаточно ощутимый оверхед на память.

Но для большинства задач с современными машиными, конечно же пофигу на ОЗУ.
https://boats.gitlab.io/blog/post/shifgrethor-i/ довольно веселое чтиво
источник

AT

Alexander Tchitchigin in Compiler Development
Rustem B.
Не, я не сохну по вебу
WASM для Веба как раз не фонтан (пока), так что можете смело его брать, раз Вам GC всё равно не нужен. 😂
источник

DP

Dmitry Ponyatov in Compiler Development
Rustem B.
Не, я не сохну по вебу
запуск в браузере не обязательно = вебу, ну можно еще в байт-кот компилировать и примитивный интерпретатор на сишечке
источник

BD

Berkus Decker in Compiler Development
MaxGraey
Это не bump аллокаторы и как раз очень даже суть
не докапывайся плиз, ты понял что я хотел сказать
источник

AT

Alexander Tchitchigin in Compiler Development
Dmitry Ponyatov
запуск в браузере не обязательно = вебу, ну можно еще в байт-кот компилировать и примитивный интерпретатор на сишечке
А ещё лучше - взять готовый с JIT. Wasmer или Wasmtime, например. 😉
источник

RB

Rustem B. in Compiler Development
Не, за LLVM будущее
источник

RB

Rustem B. in Compiler Development
Ещё бы он имел синтаксис попроще
Сделали бы какой-нибудь диалект LLVM IR lite
источник

BD

Berkus Decker in Compiler Development
Rustem B.
Ещё бы он имел синтаксис попроще
Сделали бы какой-нибудь диалект LLVM IR lite
cranelift погляди? или libfirm
источник

МБ

Михаил Бахтерев in Compiler Development
Rustem B.
Не, за LLVM будущее
Он тяжёлый слишком. Накроется под собственной тяжестью, когда альтернативы созреют.
источник