Aidar
Берешь одно и то же дерево файлов
Aidar
Начистую накатываешь
Aidar
Все работает везде одинаково все счастливы
Andrew
например потому, что у докера есть unionfs. Складывает бинарные дифы как слоёный пирог. Деплой за секунды, даунтайм минимален
Andrew
https://youtu.be/hdVNKmru3LM?t=12m53s
Andrew
зацените, собственно как написан докер
Aidar
Ну в чем тогда трабл
Andrew
unionfs — модуль линукса
Andrew
Ну в чем тогда трабл
трабл в изоляции и инструментах управления
Andrew
я вот щас пишу прилагу, у которой есть кластер редис серверов
Andrew
недавно появились серверы — я всё перенёс ровно за 10 минут
Andrew
а если бы всё скопом мейнтенилось, пришлось бы отделять мух от котлет. Где-то либы редиса, где-то мои
Andrew
это очень часто приводит к каше
Constantine
https://youtu.be/hdVNKmru3LM?t=12m53s
Название радует, все школьники ваши
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
ещё можно стандарт почитать, но это сложна
Constantine
о плюсах
Andrew
есть такая штука как RVO и NRVO
Constantine
я знаю
Constantine
в случае с int она не нужна
Andrew
нет подожди
Andrew
ты конструируешь объект на стеке
Aidar
Точнее не всегда верно для инт
Aidar
Тоесть неверно
Constantine
ты конструируешь объект на стеке
при возврате через eax значение будет лежать в регистре
Constantine
Тоесть неверно
ты про align для структур или что?
Andrew
что значит при вовзрате eax?
Aidar
Я про соглашения о вызовах
Aidar
Их тыщи
Andrew
ты конструируешь объект на стеке. Компиль просто сконструирует его в другом кадре
Constantine
ну по крайней мере вижак на моей винде будет использовать конвенцию, в которой возвращаемое значение в eax
Andrew
даже вижа умеет в NRVO
Andrew
потому что он возращает объект на стеке из функции
Constantine
стандарт может сделать это условие невыполнимым
Aidar
Но не будет
Constantine
мне кажется суть RVO в том что на самом деле функция получала параметр Result& и поэтому может угадать локальную переменную которую считать Result&
Andrew
эта конструкция будет соптимизированна. Объект реально создастся в кадре, где функция вызывается
Constantine
да, и меня интересует вопрос просадки производительности при использовании struct { int x; } относительно int
Aidar
godbolt
Constantine
Очень тяжело провести полноценно такое исследование. Это несколько дней работы, поэтому я спрашиваю
Aidar
godbolt.org
Andrew
про NRVO спрашивают на собеседках часто :)
Aidar
Ни разу не спрашивали
Aidar
Ни разу не был
Constantine
http://alenacpp.blogspot.ru/2008/02/rvo-nrvo.html
я не понимаю, как обсуждаемый вопрос связан с RVO
Constantine
возврат из функции?
вы хотите сказать, что в этом случае речь вообще идет про RVO? int f(int x, int y){ return x + y; }
Aidar
Ну копия Инта же ахах
Andrew
RVO вообще про объекты, но мне чот кажется, что эту функцию компиль посчитает инлайновой
Andrew
и распахнёт её в x + y
Aidar
О0
Aidar
Профит
Constantine
RVO вообще про объекты, но мне чот кажется, что эту функцию компиль посчитает инлайновой
именно, RVO отвечает за оптимизацию объектов, а речь идет о том, что производительность безумно критична и накладные расходы структуры - лишние
Aidar
Это случайно не про ячейки памяти?
Andrew
ибо ради такого стек вызовов не разумно юзать
Aidar
Если да то и там и там одна ячейка
Andrew
ну слушай, структура сама по себе на уровне асма — ничто
Constantine
пересылка данных из памяти в регистр - что