Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Когда использование Cgo оправданно?

Лучший ответ:
Основной недостаток использования Cgo - это снижение производительности.
Вызовы C/C++ достаточно затратны по ресурсам, т.к. C ничего не знает о данных в Go и для вызова C необходимо полностью сохранять все регистры и переключать стек, за счёт этого и возрастают накладные расходы, соответственно снижается производительность. 

Использование Cgo имеет смысл, когда есть объёмные библиотеки написанные на C/C++, которые можно использовать. При этом написание кода на чистом Go намного затратнее, чем использование этих библиотек с Cgo.

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

У меня был подобный кейс на Perl, но принцип тот же.
При скачивании HTML страниц размер занимаемой RAM скриптом постоянно увеличивался и в итоге "съедал" всю память на сервере.

Задача скрипта была скачивать HTML страницы, извлекать из них все ссылки на внешние ресурсы.
Я принял решение и написал функцию на С, которая выкачивала страницу, извлекала ссылки, очищала память и возвращала в Perl уже готовый список ссылок. Скрипты перестали постоянно "пухнуть", их можно было запустить в несколько раз больше по количеству на том же сервере + производительность стала явно выше.

В общем всё сильно зависит от задачи, но, думаю, более 90% кейсов будет связано с тем, что намного дешевле использовать готовую библиотеку C/C++ с Cgo, чем переписать эту библиотеку на чистом Go.

Худший ответ:
В описании же пакета прямо сказано
Cgo enables the creation of Go packages that call C code.
Ни слова про производительность.
Вопрос: Где провести опросы общественного мнения и спросить личное мнение по IT-тематике?

Лучший ответ:
Напиши на Хабр годную статью и прилепи опрос в конце

Худший ответ:
В reddit есть.
Вопрос: Как проверить работоспособность плашки ОЗУ?

Лучший ответ:
Memtest86
https://www.memtest86.com/

Скачать, записать на флэшку, загрузиться, запустить, оставить на ночь.

Худший ответ:
Пуск -> Средство диагностики памяти Windows.
Перезапускаетесь.
Выбираете "Расширеный режим"
Оставляете на ночь (6-7 прогонов).
Вопрос: Что лучше сейчас использовать?

Лучший ответ:
Вообще-то ПМА - это самый отстойный клиент для работы с БД
Я не понимаю, как люди вообще им могут пользоваться. 

Берете любой локальный клиент (в идеале PHPStorm, но можно хоть Workbench) и настраиваете доступ к удалённой БД серез SSH.

Вот только NGINX тут совершенно не при чем. К базам данных эта программа не имеет ни малейшего отношения

Худший ответ:
получше?
Получше для чего? Для того, чтобы не напрягать межушную мышцу, ничего лучше PMA нет и не предвидится, другие инструменты требуют понимания и освоения.
Вопрос: Как правильно логировать базу данных?

Лучший ответ:
Если честно, то не совсем понятно чего вы хотите.
В БД есть логирование. Вот, например PostgreSQL

Если речь идет о логах hibernate & jpa, то вот, полезная статья:
https://www.baeldung.com/sql-logging-spring-boot
Можно установить уровень логирования, а затем например, вывести логи в файл

Если речь про Spring & Hibernate (про аудирование), например, когда какая сущность была добавлена или обновлена, то есть например, EntityListeners.

Вот, простой пример:
@SpringBootApplication
@EnableJpaAuditing
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

сущность User - 
@Entity
@EntityListeners(AuditingEntityListener.class)
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    @CreatedDate
    @Column(updatable = false)
    private LocalDateTime created;

    @LastModifiedDate
    private LocalDateTime lastModified;

}

Худший ответ:
В самой базе данных уже есть встроенное логгирование
Вопрос: Можно с помощью arduino обнаружить объекты?

Лучший ответ:
Слишком мало вычислительных ресурсов. Впихнуть невпихуемое конечно можно, но нужно обладать достаточной экспертизой в этом вопросе.

Худший ответ:
Есть камера Pixy2, работает и с ардуино, ище не пробувал но интересно.
Вопрос: Как появляется сетевой интерфейс и ip адрес на примере linux?

Лучший ответ:
Окей, гугл.
Эви Немет Руководство системного администратора

Худший ответ:
Ip адрес можно самому прописать на хосте или получаем с помощью dhcp, эта сущность ядра ОС?
Можно и так и так.
Это не сущность ядра ОС, ты же можешь вообще без сетевой карточки работать, или работать не по IP а по другому протоколу. Это настройки TCP.
Можно ли назвать конфигурационной настройкой?
Как хочешь называй.
Настройки сетевого интерфейса поступают от драйвера сетевой карты?
Ну как поступают. Некоторые ты отправляешь на сетевую карту, некоторые она тебе. А некоторые сетевые карты могут быть виртуальными. 

Можно создать виртуальные сетевые интерфейсы, обязательно для этого иметь физический сетевой интерфейс?
Можно, не обязательно.

Кто в ядре или где почитать отвечает за формирование пакета, кадра и отправку по сети(кабелю)? 
Драйвер UDP/TCP/IP служб отвечает за формирование пакетов TCP/UDP/IP, а сетевая карта за формирование фреймов сетевой карты или что там у нее. Есть же карты разные, wifi/ethernet/модемы

сетевая карта это устройство, а не интернет.
Естественно
Вопрос: Почему при использовании оператора or в Пайтон, нарушается логика if?

Лучший ответ:
Потому что у оператора or меньший приоритет, чем у оператора ==. Сначала выполняется message.text == 'BLA', затем 'BLABLA' — последнее всегда расценивается как True (непустая строка). Можно расставить скобки для лучшего понимания приоритета выполнения:
if (message.text == 'BLA') or 'BLABLA':
Затем строку "BLABLA" можно заменить на True:
if (message.text == 'BLA') or True:
Это условное выражение всегда будет равно True.

Скорее всего, вы хотели написать:
if message.text == 'BLA' or message.text == 'BLABLA':
Я заменил бы эти два условия кортежем с допустимыми значениями и оператором in:
if message.text in ('BLA', 'BLABLA'):

Худший ответ:
if message.text == 'BLA' or message.text == 'BLABLA':
    ...
Иначе питон преобразует текст к значению boolean, и BLABLA будет равно True.
Оператор or, если один из операндов равен True - возвращает True, иначе False
Вопрос: Совместимы ли Golang и Machine Learning?

Лучший ответ:
Давайте разделим -  мухи отдельно, а котлеты отдельно.
Вопрос первый:
"Совместимы ли Golang и Machine Learning?" -  Ответ "да". Существуют решения для МL и на Go, и на Python, и на С# и на Java, и даже на PHP и JavaScript. А если учесть, что процентов 80 инструментов для МL реализованы на С++ то и он задействован. 
Вопрос в том, на чем чаше работают при решении задач ИИ и ML -  это уже совсем другой вопрос.
Вопрос второй:
"можно ли мне их будет совмещать в дальнейшем, чтобы работать сразу в двух направлениях." Если под "их" вы понимаете Go и ML -  то см. выше. А если "backend" и ML -  скорее всего нет.  Впрочем, есть такая специальность, как "Machine Learning engineer" или еще говорят "Специалист по дата-инженерии".  Там могут оба навыка как-то сблизиться и где-то пересечься.  Но это не чистый "backend"  и не чистое Машинное обучение.  Посмотрите в эту сторону.
Вопрос третий:
"Не знаю, что выбрать backend разработку на Golang или Machine Learning" (кстати, а тут уже вы Go противопоставили  МL - это случайность?) 
Вот тут за вас никто не решит, и не стоит перекладывать ответственность на других. Посмотрите, почитайте -  благо в интернете на эту тему написано столько, что ни на одном форуме вам не расскажут что-то новое. Подумайте, что вам больше нравиться, к чему больше тянет. Вообще говоря это разные сферы - одна чисто технологическая, вторая скорее статистическо-математическая,  где программирование используется только как инструмент.   Не факт, что вы настолько разносторонне и равномерно подготовлены, что почувствуете себя одинаково комфортно в обоих сферах.  И принимайте решение. Самостоятельно! Без оглядки на советы непонятно кого, с непонятно каким опытом и образованием. 
Удачи.

Худший ответ:
Зависит какой раздел интересует, в целом даже есть книга по го и машинному обучению. Есть порт opencv на го но он неполный.
Вопрос: Как отслеживается подключение монитора VGA?

Лучший ответ:
Добавить ещё два 75 Ом резистора на Vsync и Hsync.

Если же материнка проверяет EDID, то придётся повесить на контакты разъёма микросхему 24С02 c EDID. См. распиновку разъёма VGA.
Эту микросхему можно найти на майн-платах неисправных мониторов/телевизоров имеющих порт VGA, микросхема должна относится именно к VGA порту.
Или записать в 24С02 программатором любой EDID для VGA монитора, напр.
hex00FFFFFFFFFFFF00410C3AD040E20100
101101030E1E1778EAB4A5A1584E9726
165054BFEE0001010101010101010101
01010101010164190040410026301888
360030E410000018000000FF00545933
30373039313233343536000000FC0050
484C20313550464C34313232000000FD
00384C1E3F08000A20202020202000E3
Вместо программатора можно обойтись VGA/HDMI/DVI разъёмом и ОС Linux c программами i2c-tools, но не все видеокарты поддерживают запись i2c.

Худший ответ:
подключите плату от любого моника(даже без питания на нее должно сработать) и все. Заглушите так сказать линию.. пусть думает что монитор там есть..
Вопрос: Cms или код вручную? Что выбрать при наполнении портфолио?

Лучший ответ:
работодателю вообще плевать на это. и на ваше портфолио тож.

Худший ответ:
Смотря в каком направлении хочется работать. 
Если упор на фронтенд, то CMS не важна.
Вопрос: Перестал работать onclick. В чем проблема?

Лучший ответ:
уберите атрибут disabled и все заработает.

Худший ответ:
onclick="addToCart('{{ item }}', this)"

Таким образом у вас функция вызывается сразу при инициализации(по идее).
Попробуйте следующим образом:

html:
<button onclick="handleClick" data-name="{{ item }}" disabled="false">Искать</button>

js:
const handleClick = (evt) => {

addToCart(evt.target.getAttribute("data-name"), evt.target)

}

Что тут происходит? Создается просто функция хендлер, которая имеет event. ИЗ event мы достаем ссылку на кнопку + ваше название item(предполагаю, что это какой-то html шаблонизатор)
Вопрос: Как начать зарабатывать удаленно?

Лучший ответ:
если не разберётесь, то и платить не будут. 

что касается менторства, лучший способ - пойти в офис. 
от неумехи на удаленке – одни убытки. некоторые компании могут себе это позволить в надежде взрастить себе кадра. но одиначка скорее всего скажет: а нахрена мне это.

Худший ответ:
Фрилансом нет смысла заниматься без приличного опыта работы. Заказчик хочет работать со специалистами, которые быстро и качественно решают его задачи, т.к. он платит за это. Ждать пока начинающий специалист будет решать его задачу никто не будет и неизвестно будет ли решена вообще задача и в каком виде.
Главные критерии для заказчика: время и качество [ опыт]
Для начинающих специалистов лучше всего набраться опыта работы в фирме. Если будет опытный ментор + возможность спланировать карту развития ( развитие soft, hard skill's). Увидеть как построены процессы разработки ПО,  организованы бизнес- процессы и т.д. Учиться лучше на реальных проектах, где необходимо решать поставленные задачи [ и более опытные коллеги/ментор смогут помочь]. Так разработчик сможет получить необходимый опыт и в дальнейшем работать на фрилансе.  
Где найти наставника, которому буду помогать делать реальную работу, а он будет объяснять что как делать?  Наставнику не требуется ваша помощь, Наставником  называют лицо, которое передает знания и опыт.
Вопрос: Как устроена структура маркетплейса?

Лучший ответ:
Нет таких статей.
А то, что есть - полная фигня. Для нубов - это бесполезно из-за недостатка квалификации, а для настоящих технарей бесполезно потому, что они понимают, что там столько подводных камней из-за которых эту статью надо выбросить в топку.
В маркетплейсах основное ядро - это логистика.
Я там работал. Я через этот ад прошёл

Худший ответ:
Так же как обычный магазин. Только к товару добавляется сущность продавец.
Вопрос: Как убедить тайпскрипт, что unknown можно в ReturnType?

Лучший ответ:
У TypeScript есть ряд проблем с функциональными типами в дженериках из-за их вариантности
Вот так результат будет аналогичным, но работает без проблем:function call<R>(f: () => R): R {
  return f()
}

Худший ответ:
Первое что пришло в голову: 
return f() as ReturnType<F>
Вопрос: ПК: сборку какого производителя выбрать?

Лучший ответ:
Лучшее соотношение цена/качество - собрать самостоятельно, естественно после изучения матчасти.

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

Худший ответ:
Есть проверенные продавцы. Flash, например, закупался там со времён FIDO. Они помогут подобрать конфигурацию. Покажите её на тостере для проверки. Могут и собрать с гарантией.
Вопрос: Как быстро добавлять / обновлять миллионы строк в БД Laravel?

Лучший ответ:
Для сферического обновления в вакууме не нужно вообще ничего. 
БД спокойно по умолчанию пишет десятки тысяч строк в секунду.
То есть просто записывать и всё.

При возникновении конкретных проблем надо собраться с мыслями и задать конкретный вопрос, детально описывая проблему. А не вот это вот "ну у нас там много всего и растёт нагрузка".

В качестве чисто гадательной рекомендации поиграться с innodb_flush_log_at_trx_commit / транзакции.

Худший ответ:
Вопрос не как добавляешь, а как потом эти данные читаешь, как ведёшь выборку.

Например (один из многих вариантов не ответ на твой) не добавляя индексы можно очень сильно понять скорость, но для чтения либо создать либо переносить большими блоками в другую таблицу, попутно агрегируя,

Заведи патриции например по времени, если характер данных - временные ряды
Вопрос: Забился DISK C сам по себе, перезагрузка ПК помогла но на время и по новой. Что делать?

Лучший ответ:
TreeSizeFree-Portable - тебе в помощь...

Худший ответ:
Есть очень много важных файлов на диске C? если да скопируй поищи пол часа может занять не знаю. зависит от того сколько у тебя там файлов. переустанови виндовс когда скинешь все файлы и браузер скопируй или синхронизируй в гугл как то там закладки история и форматируй диск чтоб наверняка и переустанови винду
Вопрос: Как использовать nginx как прокси для mysql?

Лучший ответ:
nginx может проксировать НЕ только http/https трафик. 
https://docs.nginx.com/nginx/admin-guide/load-bala...
другой момент что это страшный костыль и так делать лучше не надо. 
но если очень хочется то вот пример, прям с сайта nginx
https://www.nginx.com/blog/scaling-mysql-tcp-load-...

и да, я присоединяюсь к комменту о том что в базе можно и без nginx-а подключаться вполне себе успешно..

Худший ответ:
как уже сказали выше: проксировать - костыль. хотя и возможно различными способами, простыми или не очень. 

нормальный способ - разрешить удалённое подключение. 
а дальше по ситуации:
- если у удаленной машины постоянный адрес, создаём в мускуле юзера только с этим адресом. 
- если адрес "плавает", создаём в мускуле пользователя с доступом отовсюду и сложным паролем, сверху навешиваем fail2ban, а лучше ещё добавить порт нокинг. или просто юзаем ссх-туннель.
Вопрос: Как организовать несколько сайтов на одном ip?

Лучший ответ:
Для такого, обычно, заводят несколько доменов, которые указывают на 1 ip, а на этом ip разворачивают nginx, который по запрашиваемому домену будет перенаправлять запросы к нужным сайтам.

Худший ответ:
Если есть какая-то более правильная реализация всего этого, то прошу подсказать
Правильная реализация прокинуть на вашем роутере 80 и 443 порты на сервер нгинх
На нем уже настраивать виртуальные хосты. И кстати так себе идея держать хостинг внутри конторы. Вдруг кто то захочет скачать 100500 обновлений?
Вопрос: Как исправить это?

Лучший ответ:
Не используйте мобильный интернет для игр. Отключите vpn.

Худший ответ:
включил vpn mtu норм только почему 80 и 443 порты?
когда жму на 443 выходит эта страница
ну зайцы компьютерные вы что нибудь знаете?
Вопрос: Зачем преобразовывать в float?

Лучший ответ:
Потому что изначально число с запятой типа double, и что бы дать понять компилятору что это именно float нужно писать (float)2.8 или же 2.8f

Худший ответ:
Что бы точно перевелось в флоат.
Вопрос: Системный блок и периферия «щипаются» без заземления – как бороться?

Лучший ответ:
Так и должно быть, такова особенность компьютерных и не только блоков питания. там стоят конденсаторы с фазы и нуля на корпус, через которые чутка просачивается ток.
Подробности естественно уже были описаны на хабре https://habr.com/ru/post/153821/

Нужно заземлять, ну или не трогать руками.

Худший ответ:
Это точно не статика? А то похоже, что как раз наоборот - статический заряд стекает на металлические части (и растекается по ним).  Можно попробовать увеличить влажность или обработать одежду антистатиком... Либо, как сказал evgeniy_lm, неисправный БП.
Вопрос: Подхватил стиллер, что делать?

Лучший ответ:
Лучше переустановить винду

Худший ответ:
Есть большая надежда, что починится (в основном) этой утилитой.
Скачайте, распакуйте и запустите AV block remove, следуйте инструкциям. Если не запустится - переименуйте файл. Не поможет - запустите из безопасного режима с поддержкой сети - это важно.
После отработки утилиты и перезагрузки покажите содержимое файла AV_block_remove_дата_время.log из папки с программой.
Вопрос: ПК работает в половину мощности! Как починить?

Лучший ответ:
Проверить охлаждение процессора и видеокарты - банальный перегрев может вызывать подобное.
Посмотреть живой ли диск - SMART глянуть.
Посмотреть насколько живой БП - банальная нехватка питания, может давать те же симптомы.

Наиболее вероятно питание или перегрев.

Худший ответ:
Во первых - в "половину", это как? 
Во вторых, гуглить коды ошибок. Это проще и быстрее, чем задавать общие вопросы. Например, гугл говорит, что ошибка с мемори манагементом - это кривые дрова
В третьих, если такие вещи вызывают вопросы - заплатить за их решение. Альтернатива - часы в гугле, с любопытством и признанием себя дураком на вооружении.
Вопрос: Что лучше использовать Redux или Context?

Лучший ответ:
TLDR: Лучше использовать то, что подходит для решения конкретных задач в вашем приложении.

В простом приложении сойдёт и контекст. Начнёт приложение разрастаться, контекста будет не хватать, начнешь накручивать логику. Получится свой редакс на минималках, но скорее всего с худшей реализацией.

Голый редакс в 2021 лучше не брать. Смотри сразу в сторону redux-toolkit. Если нужен "стор" для кэша данных от веб-сервера, есть смысл посмотреть на redux-toolkit query, буквально неделю как релизнули.

Хорошая статья по этой теме: https://blog.isquaredsoftware.com/2021/01/context-...

Худший ответ:
Много статей на эту тему. Вот одна из них: https://habr.com/ru/post/419449/
Но в общем и целом, как правильно замечено выше, зависит от целей.
У обоих подходов есть как плюсы, так и минусы.
Я бы ответил на вопрос так: если проект маленький (типа todo list), то context. Если большой, то нужен уже централизованный стейт менеджер.
Вопрос: На чём создать конструктор документов?

Лучший ответ:
Вордовский документ - это просто zip-архив с XML-ками внутри.
Так что сделать можно на чём угодно, на чём ты можешь работать с ZIP и XML.

В том числе и на php.
Для этого даже есть готовая библиотека, которую ты мог легко найти, если бы сначала задал свой вопрос в гугл: https://packagist.org/packages/phpoffice/phpword

Худший ответ:
https://uk.wikipedia.org/wiki/HCL_Domino

 IBM Notes та Lotus Notes
Вопрос: Почему пропало питание мат.платы после чистки БП?

Лучший ответ:
Возможно можно проверить щупами выходное БП, но я не электрик. Простейшая проверка - запуск БП народным методом срепкой: https://www.google.com/search?q=БП+скрепка
Если БП не удаётся запустить скрепкой, значит проблема в БП.

Худший ответ:
Пк надеюсь полностью обесточивался перед чисткой?
Продуйте хорошенько контакты питания на бп и мат плате...
Ну и на всякий - проверить с другим бп... мож короткое где то словилось
Вопрос: Как помень class всем элементам данного class?

Лучший ответ:
Зачем вам javascript?

snippet

Худший ответ:
Извини конечно, может это я тупой, но у тебя же цикл, а значит одинаковые id у всех постов, и срабатывает только первый. Используй селектор по классу.
Вопрос: С чего начать разработку биопротезов?

Лучший ответ:
Начните с изучения анатомии и физиологии.

Худший ответ:
Вам нужно двигаться где-то в сторону микроконтроллеров типа Arduino и Raspberry PI, не уверен, что java вам тут чем-то поможет
Вопрос: Что имеют в виду, когда говорят о кроссбраузерной вёрстке?

Лучший ответ:
Кроме IE есть ещё safari, который сейчас как новый IE со своими приколами.
Если упарываться в pixel perfect, то есть ещё firefox, который немного иначе отображает шрифты.
Разные ОС также могут немного влиять на шрифты.
Ну и ещё огромный пласт - мобильные браузеры, особенно samsung. Они тоже могут привносить неожиданные эффекты.

Так что уточняй у конкретного работодателя, что именно он понимает под кроссбраузерной вёрсткой и какие именно браузеры необходимо поддерживать.

Худший ответ:
что сверстанная страница во всех браузерах выглядит одинаково
Вопрос: Целесообразно ли логирование выносить в отдельную базу?

Лучший ответ:
А в чем загвоздка? Проблем с этим нет, если журналы грузят базу, то используйте отдельную. И даже не классическую базу, а MongoDB, например, или иные инструменты.

PS Ну а снятие копий, почему не исключить таблицы при выборке? Плюс, есть другие решения для разработчика, например, наборы тестовых данных (у Laravel есть соответствующий инструмент).

Худший ответ:
ЧТо-то никто не предлагает крутой вариант с иластиком....
Буду первым.
Вопрос: Firefox по истечении ~1часа сьедает всю доступную ОЗУ?

Лучший ответ:
пара расширений(Vue/React devtools + uBlock + TempMail)Начните с отключения всех расширений. Если проблема исчезнет, то включайте по одному, узнаете саботажника.
В большинстве случаев поедание памяти или другие глюки браузера связаны с каким-нибудь расширением.

Худший ответ:
about:memory даёт полный отчёт по тому как распределена память внутри браузера, смотрите туда. Там же можно получить отчёт по памяти, сохранить его, а затем загрузить для сравнения, так можно будет быстрее найти аномалии. Помимо этого там же можно запустить принудительную очистку памяти и сбор мусора.

Подобное поведение нетипично. К примеру у меня сейчас открыто 8 окон и в них суммарно около 1500 вкладок, при этом браузер не выключается неделями. Потребление памяти очень стабильное, закрытие вкладок вызывает освобождение памяти.
Вопрос: Где берут фильмы для онлайн-кинотеатра?

Лучший ответ:
Заключают договора с киностудиями и покупают прокатные лицензии. Цены для разных фильмов разнятся на порядки.

Худший ответ:
Со студиями, как пишут в ответах, договора замучаешься подписывать. Это нужно иметь достаточный бюджет (в млн$) и штат сотрудников, которые будут ездить по всем крупным кинорынкам/фестивалям мира и скупать права. + многие студии не имеют права продавать права на свои фильмы на определенных территориях/площадках. Поэтому самый простой и дешевый способ получить голливудские хиты в сервис - это дистрибьюторы и прокатчики. С ними можно подписать контракты сразу на комплект фильмов. В рф самый крупный ЦПШ.
Вопрос: Docker vs Bare Metal — сравнение производительности?

Лучший ответ:
Конечно будет тратится какое то количество ресурсов на контейнеризацию. Но в 99% из 100% удобство разработки это перекроет - машинное время стоит копейки, время разработчика наоборот дорого.

IBM Research Report. An Updated Performance Compar...

Худший ответ:
Nginx
PHP-FPM
Mysql
Laravel-echo-server (node) - websocket
Redis
Не нужен здесь Docker.