Aidar
Берешь одно и то же дерево файлов
Aidar
Начистую накатываешь
Aidar
Все работает везде одинаково все счастливы
Andrew
например потому, что у докера есть unionfs. Складывает бинарные дифы как слоёный пирог. Деплой за секунды, даунтайм минимален
Andrew
https://youtu.be/hdVNKmru3LM?t=12m53s
Andrew
зацените, собственно как написан докер
Aidar
Andrew
Aidar
Ну в чем тогда трабл
Andrew
unionfs — модуль линукса
Andrew
я вот щас пишу прилагу, у которой есть кластер редис серверов
Andrew
недавно появились серверы — я всё перенёс ровно за 10 минут
Andrew
а если бы всё скопом мейнтенилось, пришлось бы отделять мух от котлет. Где-то либы редиса, где-то мои
Andrew
это очень часто приводит к каше
Constantine
Andrew
это не моё )
Andrew
нашёл на просторах
Constantine
верно ли, что использование struct { int x; } как type alias для int не тормозит код?
Anonymous
Хэй, никак не могу зайти в группу @pro.algorithms, ни в поиске не найти, ссылки из гугла не работают
Andrew
как по мне — вполне верно
Constantine
https://t.me/joinchat/AAAAAEHb2qHizHNLpTX0pA
Constantine
ой не тот
Constantine
https://t.me/proalgorithms
Andrew
struct сам по себе объект не формирует
Anonymous
Спасибо, видно там не было точки между pro и algorithms
Andrew
обёртка для данных
Constantine
я понимаю, просто немного сомневаюсь
Constantine
например, верно ли, что возврат такой структуры будет осуществляться напрямую через eax?
Andrew
ну в таком случае надо смотреть что генерит компилятор
Andrew
ещё можно стандарт почитать, но это сложна
Andrew
Constantine
о плюсах
Andrew
есть такая штука как RVO и NRVO
Constantine
я знаю
Constantine
в случае с int она не нужна
Andrew
нет подожди
Aidar
Andrew
ты конструируешь объект на стеке
Aidar
Точнее не всегда верно для инт
Aidar
Тоесть неверно
Andrew
что значит при вовзрате eax?
Aidar
Я про соглашения о вызовах
Aidar
Их тыщи
Andrew
ты конструируешь объект на стеке. Компиль просто сконструирует его в другом кадре
Constantine
ну по крайней мере вижак на моей винде будет использовать конвенцию, в которой возвращаемое значение в eax
Aidar
Andrew
даже вижа умеет в NRVO
Andrew
потому что он возращает объект на стеке из функции
Constantine
стандарт может сделать это условие невыполнимым
Aidar
Но не будет
Constantine
Constantine
мне кажется суть RVO в том что на самом деле функция получала параметр Result& и поэтому может угадать локальную переменную которую считать Result&
Andrew
эта конструкция будет соптимизированна. Объект реально создастся в кадре, где функция вызывается
Andrew
Constantine
да, и меня интересует вопрос просадки производительности при использовании struct { int x; } относительно int
Andrew
Aidar
godbolt
Constantine
Очень тяжело провести полноценно такое исследование. Это несколько дней работы, поэтому я спрашиваю
Aidar
godbolt.org
Andrew
про NRVO спрашивают на собеседках часто :)
Aidar
Ни разу не спрашивали
Aidar
Ни разу не был
Andrew
Constantine
возврат из функции?
вы хотите сказать, что в этом случае речь вообще идет про RVO?
int f(int x, int y){
return x + y;
}
Aidar
Ну копия Инта же ахах
Andrew
RVO вообще про объекты, но мне чот кажется, что эту функцию компиль посчитает инлайновой
Andrew
и распахнёт её в x + y
Aidar
О0
Aidar
Профит
Aidar
Это случайно не про ячейки памяти?
Andrew
ибо ради такого стек вызовов не разумно юзать
Aidar
Если да то и там и там одна ячейка
Constantine
Andrew
ну слушай, структура сама по себе на уровне асма — ничто
Constantine
пересылка данных из памяти в регистр - что