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

Rooster

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

var  

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

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

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

- ты тупой

- пох

- ты тупой

- пох

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

 

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

 

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

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


Ссылка на сообщение
  GoldRobot написал 04.06.2024 в 16:02:

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

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

 

  GoldRobot написал 04.06.2024 в 16:02:

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

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

 

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

  Olololnet написал 04.06.2024 в 16:15:

- ты тупой

- пох

- ты тупой

- пох

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

 

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

 

Показать больше  

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

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


Ссылка на сообщение
  Grohuf написал 04.06.2024 в 16:12:
  GoldRobot написал 04.06.2024 в 16:02:

:onneponimaet:

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

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

  Grohuf написал 04.06.2024 в 16:16:

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

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

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

  Grohuf написал 04.06.2024 в 16:16:

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

А должно?

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

 

  Grohuf написал 04.06.2024 в 16:16:

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

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

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


  ward написал 03.01.2022 в 19:54:

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

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

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

 

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


Ссылка на сообщение
  GoldRobot написал 04.06.2024 в 16:22:

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

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

 

  GoldRobot написал 04.06.2024 в 16:22:

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

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

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

 

  GoldRobot написал 04.06.2024 в 16:22:

А должно?

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

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

 

  GoldRobot написал 04.06.2024 в 16:22:

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

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

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


Ссылка на сообщение
  Grohuf написал 04.06.2024 в 16:31:

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

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

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

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

  Grohuf написал 04.06.2024 в 16:31:

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

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


  ward написал 03.01.2022 в 19:54:

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

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

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

 

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


Ссылка на сообщение
(изменено)
  GoldRobot написал 04.06.2024 в 16:41:

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

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

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

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

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


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

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


Ссылка на сообщение
  Grohuf написал 04.06.2024 в 16:53:

Именно такая политика в 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 написал 03.01.2022 в 19:54:

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

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

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

 

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


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

 

  GoldRobot написал 04.06.2024 в 16:59:

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

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 написал 03.01.2022 в 19:54:

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

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

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

 

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


Ссылка на сообщение
  GoldRobot написал 04.06.2024 в 18:03:

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

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

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


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

лень читать эту хуйню. Так понимаю спор идет быстрее ли операция 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 написал 04.06.2024 в 11:37:

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

:lol:

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

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

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

в этом и суть

 

 

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

 

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


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

 

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


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

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


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

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

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

 

DB


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


22

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


Ссылка на сообщение
  Arzanis написал 04.06.2024 в 19:25:

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

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

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


Ссылка на сообщение
  Grohuf написал 04.06.2024 в 16:31:

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

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

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

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

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

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

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

 

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

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

  Grohuf написал 04.06.2024 в 19:27:
  Arzanis написал 04.06.2024 в 19:25:

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

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

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

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

 

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


 

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


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

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


Ссылка на сообщение
  Just.Doit написал 04.06.2024 в 19:37:

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

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

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


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

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

 

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


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

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


Ссылка на сообщение
  Grohuf написал 04.06.2024 в 20:02:
  Just.Doit написал 04.06.2024 в 19:37:

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

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

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

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


 

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


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

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


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

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

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

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


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

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

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

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

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

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

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

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

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


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