Я говорю о времени передачи кадра. Если у меня поток в 400Мбит и сеть в 400Мбит, мы получаем что время на передачу одного кадра при 120Гц у нас около 15-20мс, увеличив пропускную способность сети раза в два мы получаем что время на передачу одного кадра становится 10-15мс.
Не двукратный прирост, но что-то. Я занимаюсь этим всем из спортивного интереса, сейчас у меня общее время на траскод около 20мс при хорошем качестве. Лучше только провод)
Там прикол что 5/2.4 по разному отражаются и через объекты проходят. Там надо долго калдовать над расположением роутера, позиции антенн и мощности сигнала, чтоб всё красиво работало. Всё индивидуально
Причём мощность из этого самое не очевидное, мол на высокой мощности искажения от переотражённых сигналов выше, и в итоге получаем битрейт ниже чем на средней мощности, НО НЕ ВСЕГДА. Калдунство
Если у меня поток в 400Мбит, то при 400Мбит сети это 1с, а при 800Мбит это 0.5с.
В целом там ещё куча тонкостей из-за чего чисто кратных отношений получить не удаётся, но разница всё же есть. И да, если ставить 30Мбит, то там настолько смешные задержки на передачу что уже не важно какая там у вас сетка стоит
Это так называемая "проф-диффформация". У линуха проблема лишь в том что его надо руками доводить, и если у тебя что-то в системе меняется оно может нафиг всё уничтожить. Однажды нормально настроенная система, без сбойных драйверов/железа и без обновлений работает стабильно годами.
В винде с этим по проще просто, у тебя всё само настраивается, тебе даже думать особо не надо. И политика софта "всё своё ношу с собой" избавляет от 99% проблем которые обычно встречаются в мире линуха
Заставить корректно определять разрешения и режимы широкоформатных мониторов с высокой героцовкой. А то ставишь себе дистр интересный, а он тебе такой - "что? 165? 200? Я умею +100, а остальное это ты там сам в консоли выбери".
Лично я организовал себе локалку в 5Гбит ради стриминга картинки с ПК на автономные VR очки. Чем быстрее картинка передаётся, тем меньше тайминги, всё просто.
И да, эти задержки заметны. Когда ты дёргаешь рукой и она запаздывает ощущается сильнее чем когда дёргаешь мышкой в шутере.
Руководствуются часто тем что нет времени на подумать или пиар-манагер душит и ждёт ответа в следующую секунду. Так даже самые умные люди способны делать необдуманные поступки
Слушок был от друзья-друзей - там в каком-то регионе накрыли группу которая просто оформляла возвраты на новые товары, а-ля "брак", а потом ждали на свалке нужную фуру и делили награбленное.
Но был ли то озон или другой маркетплейс история умалчивает.
Есть несколько знакомых которым буквально впарили IT курсы. Кто-то смирился с утратой денег, но один персонаж... Когда до него дошло что его надурили пошёл к друзьям-друзей подал на них иски во все инстанции которые знал, а потом спустя время, безрезультатного ожидания, ему пришла гениальная идея в голову... Он взял ChatGPT и попросил его обыгрывать злого юриста который вот-вот засудит контору и просто дублировал диалог. Те настолько с него офигели что вернули деньги буквально через час.
Парнишка тот обычный трудяга с завода который в рыбалку играет и бухает по выходным, но чуть-чуть за эти ваши интернеты разбирается. (Нагрели его на 300К с кредитом под проценты интересные)
Скажем так, написать на С++ правильно требует больших компетенций от программиста чем на С. В С есть некоторые оптимизации которые проводятся неявно, чего только const стоит, который регулярно как constexpr оптимизируется. Из-за этого строится и проблема, что написанный в лоб алгоритм может работать быстрее на С, но если переписать С++ правильно, то его реализации могут сильно обогнать тот же С по эффективности.
Мой тейк только в этом.
ЗЫ и в целом это и есть проблема С++, чтобы писать на нём хорошо нужно знать ну ОЧЕНЬ МНОГО вещей, и дело не в библиотеках а именно в кор фичах языка
И тогда мы получим UB , так как мы не даём значения тривиальным типам в дефолтном конструкторе и получаем тот же мусор в памяти. (а иногда нет ибо компилятор, лол)
С++ медленнее чистого Си, особенно С++ с применением продвинутого ООП
Ну ты выдал. Так суть в том что С++ тебе дают абстракции, которые не бесплатные, и в целом всё. Код генерит идентичный, просто на С приходится писать ООП руками, что часто делают в линуксовом коде лол, и потому используют более тупые подходы которые работают на железе неожиданно эффективно.
Далеко ходить не надо, было много статей о том что в битве "чистый код-ооп" VS полотно кода из switch, побеждает последний. Потому что весь switch можно занести в таблицу и за 2-3 инструкции прыгнуть куда нужно, а этот ваш полиморфизм начинает заниматься страшными вещами под капотом.
Решились написать как-то простую демку, дабы проверить свои идеи о "тысячах юнитов на экране". После профилирования оказалось что UI занимает времени столько же, сколько рисование 50К юнитов и сервер для обработки их передвижения. Было грустно(
Эта фича довольно старая, но применять её надо с осторожностью. Как писали выше, это черевата созданием нового диалекта для конкретно вашей либы а так же нарушением ADL, что иногда плохо заканчивается.
Использование функций для этого не совсем кошерно, можно использовать constexpr переменные, дабы получить более вкусный синтаксис. Условно (value->as_int) навариваем сюда концептов и получаем забавный способ что-то сделать
Так беда не в том чтобы предусмотреть это всё, а в том чтобы сделать правильную абстрактную модель.
ИМХО, почти все кейсы использования дефолтных интерфейсов уже изучены в доль и поперёк. Если тебе нужно что-то специфическое, то нанимай деда по серьёзнее, а для остальных 99% хватит и дефолтных либ.
Особенно я не понимаю почему не сделают нормальные либы для новых плюсов(С++20 хотяб). Был бы у тебя условный dev::ina219 в котором тупо карта регистров забита и пару функций для удобной работы, а инициализировался бы он от hal::i2c[0] драйвера который вообще на этапе компиляции считается. И всё были бы счастливы. (Эх... может когда-нибудь и раскрою свой фреймворк)
ЗЫ Я вообще к тому, что слишком абстрактные модели не нужны. Они должны делать ровно то что написано в документации, если клас делает что-то ещё этот клас не имеет права называться аппаратной абстракцией, а скорее клас для обычных пользователей, так сказать.
Я говорю о времени передачи кадра. Если у меня поток в 400Мбит и сеть в 400Мбит, мы получаем что время на передачу одного кадра при 120Гц у нас около 15-20мс, увеличив пропускную способность сети раза в два мы получаем что время на передачу одного кадра становится 10-15мс.
Не двукратный прирост, но что-то. Я занимаюсь этим всем из спортивного интереса, сейчас у меня общее время на траскод около 20мс при хорошем качестве. Лучше только провод)
Там прикол что 5/2.4 по разному отражаются и через объекты проходят. Там надо долго калдовать над расположением роутера, позиции антенн и мощности сигнала, чтоб всё красиво работало. Всё индивидуально
Причём мощность из этого самое не очевидное, мол на высокой мощности искажения от переотражённых сигналов выше, и в итоге получаем битрейт ниже чем на средней мощности, НО НЕ ВСЕГДА. Калдунство
Если у меня поток в 400Мбит, то при 400Мбит сети это 1с, а при 800Мбит это 0.5с.
В целом там ещё куча тонкостей из-за чего чисто кратных отношений получить не удаётся, но разница всё же есть. И да, если ставить 30Мбит, то там настолько смешные задержки на передачу что уже не важно какая там у вас сетка стоит
Это так называемая "проф-диффформация". У линуха проблема лишь в том что его надо руками доводить, и если у тебя что-то в системе меняется оно может нафиг всё уничтожить. Однажды нормально настроенная система, без сбойных драйверов/железа и без обновлений работает стабильно годами.
В винде с этим по проще просто, у тебя всё само настраивается, тебе даже думать особо не надо. И политика софта "всё своё ношу с собой" избавляет от 99% проблем которые обычно встречаются в мире линуха
Заставить корректно определять разрешения и режимы широкоформатных мониторов с высокой героцовкой. А то ставишь себе дистр интересный, а он тебе такой - "что? 165? 200? Я умею +100, а остальное это ты там сам в консоли выбери".
Буквально пару дней назад этим занимался
Лично я организовал себе локалку в 5Гбит ради стриминга картинки с ПК на автономные VR очки. Чем быстрее картинка передаётся, тем меньше тайминги, всё просто.
И да, эти задержки заметны. Когда ты дёргаешь рукой и она запаздывает ощущается сильнее чем когда дёргаешь мышкой в шутере.
Там террористы все, вы не понимаете! Арабы особенно, это же там все эти вот... Ну религия алах-бабах же, ну?
Руководствуются часто тем что нет времени на подумать или пиар-манагер душит и ждёт ответа в следующую секунду. Так даже самые умные люди способны делать необдуманные поступки
Слушок был от друзья-друзей - там в каком-то регионе накрыли группу которая просто оформляла возвраты на новые товары, а-ля "брак", а потом ждали на свалке нужную фуру и делили награбленное.
Но был ли то озон или другой маркетплейс история умалчивает.
У меня есть кулстори на эту тему.
Есть несколько знакомых которым буквально впарили IT курсы. Кто-то смирился с утратой денег, но один персонаж... Когда до него дошло что его надурили пошёл к друзьям-друзей подал на них иски во все инстанции которые знал, а потом спустя время, безрезультатного ожидания, ему пришла гениальная идея в голову... Он взял ChatGPT и попросил его обыгрывать злого юриста который вот-вот засудит контору и просто дублировал диалог. Те настолько с него офигели что вернули деньги буквально через час.
Парнишка тот обычный трудяга с завода который в рыбалку играет и бухает по выходным, но чуть-чуть за эти ваши интернеты разбирается. (Нагрели его на 300К с кредитом под проценты интересные)
Скажем так, написать на С++ правильно требует больших компетенций от программиста чем на С. В С есть некоторые оптимизации которые проводятся неявно, чего только const стоит, который регулярно как constexpr оптимизируется. Из-за этого строится и проблема, что написанный в лоб алгоритм может работать быстрее на С, но если переписать С++ правильно, то его реализации могут сильно обогнать тот же С по эффективности.
Мой тейк только в этом.
ЗЫ и в целом это и есть проблема С++, чтобы писать на нём хорошо нужно знать ну ОЧЕНЬ МНОГО вещей, и дело не в библиотеках а именно в кор фичах языка
И тогда мы получим UB , так как мы не даём значения тривиальным типам в дефолтном конструкторе и получаем тот же мусор в памяти. (а иногда нет ибо компилятор, лол)
Ну ты выдал. Так суть в том что С++ тебе дают абстракции, которые не бесплатные, и в целом всё. Код генерит идентичный, просто на С приходится писать ООП руками, что часто делают в линуксовом коде лол, и потому используют более тупые подходы которые работают на железе неожиданно эффективно.
Далеко ходить не надо, было много статей о том что в битве "чистый код-ооп" VS полотно кода из switch, побеждает последний. Потому что весь switch можно занести в таблицу и за 2-3 инструкции прыгнуть куда нужно, а этот ваш полиморфизм начинает заниматься страшными вещами под капотом.
Решились написать как-то простую демку, дабы проверить свои идеи о "тысячах юнитов на экране". После профилирования оказалось что UI занимает времени столько же, сколько рисование 50К юнитов и сервер для обработки их передвижения. Было грустно(
Смотря какие функции, кейсов довольно много, но чем новее стандарт тем больше позволяется делать в constexpr выражениях.
Эта фича довольно старая, но применять её надо с осторожностью. Как писали выше, это черевата созданием нового диалекта для конкретно вашей либы а так же нарушением ADL, что иногда плохо заканчивается.
Использование функций для этого не совсем кошерно, можно использовать constexpr переменные, дабы получить более вкусный синтаксис. Условно
(value->as_int)
навариваем сюда концептов и получаем забавный способ что-то сделатьТак это шутка буквально...
"Я майнингом занимаюсь, да. Сколько это приносит денег? Да копейки, ни особо прибыльно. Зачем я этим занимаюсь? Так а как мне ещё бассейн отапливать?"
Может вы просто плохо понимаете современный С++...
Так беда не в том чтобы предусмотреть это всё, а в том чтобы сделать правильную абстрактную модель.
ИМХО, почти все кейсы использования дефолтных интерфейсов уже изучены в доль и поперёк. Если тебе нужно что-то специфическое, то нанимай деда по серьёзнее, а для остальных 99% хватит и дефолтных либ.
Особенно я не понимаю почему не сделают нормальные либы для новых плюсов(С++20 хотяб). Был бы у тебя условный
dev::ina219
в котором тупо карта регистров забита и пару функций для удобной работы, а инициализировался бы он отhal::i2c[0]
драйвера который вообще на этапе компиляции считается. И всё были бы счастливы. (Эх... может когда-нибудь и раскрою свой фреймворк)ЗЫ Я вообще к тому, что слишком абстрактные модели не нужны. Они должны делать ровно то что написано в документации, если клас делает что-то ещё этот клас не имеет права называться аппаратной абстракцией, а скорее клас для обычных пользователей, так сказать.
Есть родственники из деревень и суть проста - там очень доступная работа.
Хочешь наушники новые купить? Пойди у деда вишню собери, пару дней поработать и купишь что хочешь. И работают чуть ли не с 12 лет (из знакомых)