Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[11]

var  

278 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

- ты тупой

- пох

- ты тупой

- пох

- ты тупее дуита

 

Скрытый текст


image.png.8de9c40c1834b18d68acdd54465d81da.png

 

 

Arzanis понравилось это

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 10 минут назад:

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

Как он может ничего не стоить, если там нужен атомарный инкремент/декремент? 

 

GoldRobot написал 11 минут назад:

то возьми shared_ptr имплементацию, и вырежи к хуям атомики

То есть тебя не смущает, что без make_shared он выделяет память в куче дважды? :onneponimaet:

 

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

Olololnet написал 2 минуты назад:

- ты тупой

- пох

- ты тупой

- пох

- ты тупее дуита

 

  Показать содержимое

 

image.png.8de9c40c1834b18d68acdd54465d81da.png

 

 

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

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 9 минут назад:
GoldRobot написал 18 минут назад:

умный указатель инкрементирует при copy/assign/конструкторе счетчик, то он УЖЕ будет 1. На момент вызова PostTaskOnWorkerThread(this, &A::SomeMethod); его конструктор УЖЕ отработал. Ведь от этого умного указателя и отнаследовался класс. А внутри этой твоей PostTaskOnWorker создается, логично, новый умный указатель который подумает до 2.

:onneponimaet:

Класс A не является умным указателем. Ахаха.

Откуда блять я это значить должен? Ты даже не от какогонибудь EnableThreadSafeRef отнаследовался, а напрямую от класса указателя  :onneponimaet:

Grohuf написал 1 минуту назад:

Как он может ничего не стоить, если там нужен атомарный инкремент/декремент? 

Почти ничего не стоит.

Атомик не так давит многопроцесс 

Grohuf написал 2 минуты назад:

То есть тебя не смущает, что без make_shared он выделяет память в куче дважды? :onneponimaet:

А должно?

Думаешь лучше сегфолты, битую память, уб, как у тебя в примере жрать?

 

Grohuf написал 8 минут назад:

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

Охуенно ты конечно придумал.

Либо пиздуй отсюда, либо давай полный листинг.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 3 минуты назад:

Откуда блять я это значить должен? Ты даже не от какогонибудь EnableThreadSafeRef отнаследовался, а напрямую от класса указателя  :onneponimaet:

Я отнаследовался от потокобезопасного класса, включающего подсчет ссылок. Там нет ни слова про указатель в названии класса.

 

GoldRobot написал 4 минуты назад:

Почти ничего не стоит.

Атомик не так давит многопроцесс 

Ага. Всего-то вставляет барьер памяти (не давая оптимизировать код), синхронизирует кэши в разных ядрах и не дает обращаться к ячейке памяти другим ядрам. "Почти" бесплатно.

 

GoldRobot написал 5 минут назад:

А должно?

Думаешь лучше сегфолты, битую память, уб, как у тебя в примере жрать?

Ну если ты программист на си++, а не программист на Java/Python, как всеми уважаемый дуит, у которого все языки работают с одинаковой скоростью, то должно. Два выделения памяти - это лишние 16 байт накладных расходов, захват критической секции, а самое главное - фрагментированность памяти, мешающей кэшированию процессора. Плюс лишняя косвенная адресация. А так да, "Почти" бесплатно.

 

GoldRobot написал 8 минут назад:

Либо пиздуй отсюда, либо давай полный листинг.

Ты серьезно? Ты простейший код не понял, а там надо смотреть одни сплошные шаблоны.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 5 минут назад:

Ну если ты программист на си++, а не программист на Java/Python, как всеми уважаемый дуит, у которого все языки работают с одинаковой скоростью, то должно. Два выделения памяти - это лишние 16 байт накладных расходов, захват критической секции, а самое главное - фрагментированность памяти, мешающей кэшированию процессора. Плюс лишняя косвенная адресация. А так да, "Почти" бесплатно.

Почти, потому что у тебя вокруг этих накладных расходов дофига другого кода.

Но ты видимо в лоб сравниваешь с int++.

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

Grohuf написал 5 минут назад:

Ты серьезно? Ты простейший код не понял, а там надо смотреть одни сплошные шаблоны.

Как я должен понять код куски которого я из тебя выдирать должен?


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
GoldRobot написал 12 минут назад:

Почти, потому что у тебя вокруг этих накладных расходов дофига другого кода.

Но ты видимо в лоб сравниваешь с int++.

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

А с чем я должен сравнивать? Для того, чтобы можно было себе что-то позволять, нужно знать какие там накладные расходы. Что тоже выделение памяти в куче как минимум приведет к прокручиванию спинлока, а в худшем случае к переходу в режим ядра. Что непопадание в кэш - это пиздец как плохо и сильно замедляет работу. А чтобы не сидеть и не думать, могу ли я позволить себе вот эти накладные расходы, проще писать всегда правильно, не используя заведомое говно, типа shared_ptr. Именно такая политика в google, касаемая всякого говна из std.

У нас тут один коллега делает патч в llvm, потому что реализация перебора файлов в директории на Win в 10 раз медленнее нормальной. Ребята типа тебя написали во внутренней утилите перебор файлов с помощью std::filesystem, не задумываясь о последствиях. Действительно. И так нормально. Ребята, которые писали реализацию для clang тоже, похоже, думали, что и так нормально. Хули тут думать?


Изменено пользователем Grohuf

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 3 минуты назад:

Именно такая политика в google, касаемая всякого говна из std.

Цитата из гуглового стандарта

https://google.github.io/styleguide/cppguide.html

Цитата

Do not design your code to use shared ownership without a very good reason. One such reason is to avoid expensive copy operations, but you should only do this if the performance benefits are significant, and the underlying object is immutable (i.e., std::shared_ptr<const Foo>). If you do use shared ownership, prefer to use std::shared_ptr.

Согласно этому, ты накодил хуйню в своем примере. Потому что ты уже пошарил овнершип, а не передал мувом-копиец етц.

Либо ты ссылаешься на какой-то другой гайдлайн, о котором я незнаю.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение

 

GoldRobot написал 4 минуты назад:

Либо ты ссылаешься на какой-то другой гайдлайн, о котором я незнаю.

https://chromium.googlesource.com/chromium/src.git/+/refs/heads/main/styleguide/c++/c++-features.md#std_shared_ptr-banned

 

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

Поделиться сообщением


Ссылка на сообщение

Откуда я мог знать что ты ссылаешь конкретно на гайдлайн хромиума?

 

Ясно, как вижу челы сами поняли что проебались.

Пока используй

#define REQUIRE_ADOPTION_FOR_REFCOUNTED_TYPE()             \
  static constexpr ::base::subtle::StartRefCountFromOneTag \
      kRefCountPreference = ::base::subtle::kStartRefCountFromOneTag

https://github.com/scrapy/base-chromium/blob/master/memory/ref_counted.h#L290C1-L292C69

если собрался шарить владение прямо в конструкторе. Хз чем тебе еще помочь, ебись.

 

Но тему с атомиками я так и не понял. В твоей гугловской копии шаред_птр_но_лучше так же атомик. В чем доебка тогда?


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 34 минуты назад:

Но тему с атомиками я так и не понял. В твоей гугловской копии шаред_птр_но_лучше так же атомик. В чем доебка тогда?

Уже потерял нить разговора? Бедный.

Поделиться сообщением


Ссылка на сообщение

лень читать эту хуйню. Так понимаю спор идет быстрее ли операция inc чем lock inc?

Я думаю что да, но нужно бенчмаркать

Поделиться сообщением


Ссылка на сообщение

Давай я напомню основные тезисы:

1) Тестировать многопоточные ошибки сложно. GR: Ахаха, вы просто не умеете писать тесты <далее приводит пример с тестированием имплементации>.

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

3) GR несет хуйню по поводу примера, ибо ни разу не видел код, где счетчик ссылок лежит внутри объекта.

4) GR говорит, что такие указатели дерьмище и приводит пример продуманного shared_ptr.

5) GR говорит, что тестом, с миллиардом потоков, теребонькающих подозрительные классы, нельзя найти баг из моего примера.

6) GR говорит, что я не знаком с gmock, хотя знает, что я работаю над Яндекс.Браузером

7) Я сказал, что shared_ptr хуев, ибо делает две аллокации в куче, чтобы избежать которые надо использовать make_shared.

8) GR сказал, что shared_ptr охуенен и надежен, а еще в нем всегда используются атомики, но это хуйня, потому что атомики практически бесплатны

9) GR сказал, что я не прав, что нельзя передавать сырой указатель, пользуясь shared_ptr. Правда забыл упомянуть, что enable_shared_from_this нельзя использовать вместе с make_shared (привет двойная аллокация).

10) GR сказал, что лучше shared_ptr, чем ловить ошибки. И вообще, он пишет на си++, чтобы забивать на производительность, ибо язык и так быстрый.

11) GR приводит ссылку на гугловый кодстайл, который собственно о кодстайле, а не о том, какие библиотеки использовать.

12) GR думает, что суть в том, что гугл тоже юзает атомики, а не в том, что GR говорит, что они бесплатные или в том, что двойная аллокация - это плохо.

Поделиться сообщением


Ссылка на сообщение
(изменено)
GoldRobot написал 8 часов назад:

Проверяй что два лока в дедлок не могут принципиально встать

:lol:

это невозможно протестировать, чел

ты выще предложил простестировать последовательность, так?

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

в этом и суть

 

 

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

 

в многопотоке просто уровень проблем и количество возможностей и инвариантов кратно возрастают. настолько сильно возрастает сложность что все тестировать просто нет смысла. в лучшем случае какие-то отедльные сценарии и то в высокой долей недостоверности зеленого теста.


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

ООоооооо, Дуит пришел, ща ответит на каждый пост за последние 7 часов, каеф. :popcorn:

Grohuf понравилось это

 

DB

59221730.png


Я - гений, ёпта

bfe7003be27e8e81ce6a7d2d8192e9ae.jpg


22


msg-93176-0-72842500-1438846470_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Arzanis написал 1 минуту назад:

ООоооооо, Дуит пришел, ща ответит на каждый пост за последние 7 часов, каеф. :popcorn:

Надеюсь, прокомментирует каждый пост :suda:

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 3 часа назад:

у которого все языки работают с одинаковой скоростью

вообще я этого не говорил

+ я поменял немного мнение после плотной работы с питоном

там в целом можно и jit и статические типы

на практике мало кто этим пользуется и от того юзать это геморой тк корнеркейсы всплывают, заводится с трудом и тп. в итоге подавляющая часть экосистемы без типов и на интерпретаторе

я если честно в шоке какое дегродство в питоне в плане нормальной разработки

правда в следующей версии планируют добавить jit в стандарт имплементацию рантайма

 

но появилось желание поскорее дропнуть это говно

следующий кандидат это TS тк у нас это дефолт язык для того что мы сейчас пишем.

Grohuf написал 14 минут назад:
Arzanis написал 16 минут назад:

ООоооооо, Дуит пришел, ща ответит на каждый пост за последние 7 часов, каеф. :popcorn:

Надеюсь, прокомментирует каждый пост :suda:

там слишком лоулевел дебри и слишком с++ специфик

я в этой хуйне не разбираюсь и не особо хочу разбираться на текущем этапе моей карьеры

я бы сказал что у тебя очень специфичная ниша браузерной с++ разработки, и ГолдРобот просто может не понимать твоего контекста тк для невго все что быстрее джавы уже классно и перформанс, а глубже можно без нужды не разбираться

 

еще хочу отметить что ГолдРоботу скидывают конкретный код и конкретные проблемы уже 3ий раз. а он никак не может объяснить как в его мире эти проблемы решаются. только кококо - надо все замокать


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 23 минуты назад:

я поменял немного мнение после плотной работы с питоном

А кто-то говорил, что это я зашореный, так как варюсь в одной кастрюле все время.

Поделиться сообщением


Ссылка на сообщение

спасибо господи что я в универе познакомился с шарпом

 

не дай бог моя жизнь связалась бы с плюсами


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 58 минут назад:
Just.Doit написал 1 час назад:

я поменял немного мнение после плотной работы с питоном

А кто-то говорил, что это я зашореный, так как варюсь в одной кастрюле все время.

ну я пока не получил свидетельств обратного, если честно

хай перформанс плюсы в браузерном контексте знаешь 

пока не видел что ты знаешь что-то еще кроме этого


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

голдробот ты че поехавший?
ну и хуйни навалил

джаст как обычно разъебал по фактам и че только его хейтят постоянно

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...