Vladimir
про шрамко
Vladimir
я думаю
Aleksey
Ну я чуть не успеваю за вами))
Маjко
Дак инпут хендлит драйвер инпута вы чо
Маjко
Или Шрамко там ОС вопруг вебрендера пилит?
Aleksey
Ну дык это абстракция как бы
Маjко
Ну дык это абстракция как бы
Тьфу, меня @c_vld ввёл в заблуждение
Vladimir
так а что там абстракции
Vladimir
не такие зиро кост как в расте?
Vladimir
те же втейблы, в гобжектах (аналог трейобъекта)
Маjко
Втейблы не зирокост
Маjко
Vladimir
да ладно?
Vladimir
в расте тоже
Маjко
Ну я и не говорю, что они зирокост
Маjко
Трейты и генерики, очевидно зирокост
Vladimir
трейты эт инструмент же. Я к тому, что какая ранзица на чем написано
Vladimir
если нужно хранить обобщенную коллекцию то тут уже не зиро кост
Маjко
Да(((
Маjко
Хотя было бы классно, если бы таблица трейтобъектов при компиляции разворачивалась в большой свитч
պլհկ
Это невозможно
big
у С++ пилиться девиртуализация
big
со спекулятивным инлайнингом
big
особенно хорошо работает с PGO
big
(в случае если у тебя много обьектов одного типа)
Anton
Модники пидоры из элементари
Маjко
А какая разница? Собственно, свич, колл?
Свитч и вызов — джамп-таблица + прямой вызов, который бранч-предиктор может спредиктить Трейт-объект — лукап в массиве + фетч vtable (загрузка из кэша в лучшем случае), потом вызов, бранч предиктор скорее всего не работает
Anton
Вообще на вала все еаписали
Anton
Мол быстро
Anton
Сишечка
Маjко
Вала умерла
Anton
Хоть и генератор кода говно
Anton
И мол сука тут же ооп
Маjко
Дизигнеры из элементари насилуют никому не нужный труп
Маjко
Да и сам элементари не нужен
Anton
В итоге в вала вообще нихуя кроме гтк и нету
Anton
А гномовцы до сих пор божатся и верят что си чистый это тру
Anton
Это не иллюзия контроля
Anton
Это иллюзия величия
Anton
Может в бородатые 90 их идея и была крутоц
Anton
Мол ооп на си
Anton
Свои собственные типы
Anton
И свои объекты
Anton
Но сейчас это уже вообще не айс
Anton
Я уверен почти они сейчас свой убер инновационный рендер допишут к 18 году вместе с гтк4
Маjко
Они настолько не любят C++, что написали свой собственный на макросах
Маjко
Лишь бы не писать на C++
Anton
И только к 19 году перестанет тупить
Anton
И они еще раз
Anton
На 5 лет хуй забьют
Anton
Помню когда gnome3 только вышел
Anton
У меня все. Изображения и текст зелеными пикселями в сеточку дергалось
Anton
Примерно полгода так было
Anton
За их дизайнера вообще молчу - адаваита как тема была блевней вплоть до 3.18
Vladimir
Свитч и вызов — джамп-таблица + прямой вызов, который бранч-предиктор может спредиктить Трейт-объект — лукап в массиве + фетч vtable (загрузка из кэша в лучшем случае), потом вызов, бранч предиктор скорее всего не работает
Вот только бида что это с инкрементальной компиляцией это не дружит. И "лукап в массиве" равносильно получению "тега" для свитча. Так что такое себе преимущество. Максимум то, что имея все возможные реализации из всего компилируемого юнита их можно заинлайнить.
Anton
Щас более менее уже, но в плане гибкости и соответствия времени не айс
Маjко
Энивей, это всё не особо важно, статический массив с трейтобъектами — довольно редкий кейс и если прям всё настолько серьезно по требованиям, что vtable будет боттлнечить, то можно и руками написать матчи
Vladimir
Ну и плюс публичное апи и правда не девертуализируешь
Anton
В расте нельзя разбить компиляцию на все ядра
Anton
Вот это пичалька
Vladimir
Всмысле
Vladimir
Codegen unit
Anton
Выбрать количество ядер которые в компиляции запустить можно
Anton
Vladimir
Есть такой параметр в карго
Anton
Просто я не нашел какой опцией выбрать количество ядер на компиляцию
Andrei
Jobs?
Vladimir
Ссыль плез
http://doc.crates.io/manifest.html
Vladimir
Поищи там codegen
Маjко
Есть такой параметр в карго
Вообще он по задумне Alex Crichton не должен влиять на время компиляции хд
Маjко
Но по факту
Маjко
Это не так
Маjко
Оптимально — по количеству физических ядер получается
Маjко
А вообще там и так 32 юнита сейчас по дефолту