Pull to refresh
20
-3.8
Сергей @rukhi7

software developer, радиоинженер

Send message

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

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

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

Непонятно при чем тут отображение

между множествами 10^9(записанные Незнайкой разряды)*10(номер пропущенного) и 10^10 (десятизначное число, которое видит Шпунтик)

потому что нужно отображение одной десятичной цифры в десятиразрядное число!

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

На самом деле кодируется одна десятичная цифра! И кодируется она с помощью другой единственной десятичной цифры! Единственный способ кодирования одной десятичной цифры с помощью другой десятичной цифры это операция сложения по модулю

Сколько есть вариантов отобразить 10^9 в одну десятичную цифру? А бесконечное количество!

Можно сразу сложить по модулю, можно к каждому разряду прибавить 5 по модулю и после этого все сложить по модулю, можно 5 раз прибавить 7 по модулю к каждому и потом сложить по модулю...

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

9 десятичных цифр одназначно отображаются в позицию (то есть в заданную десятичную цифру номера этой позиции) единственным способом суммированием всех 9 + номер позиции по модулю! Потому что при декодировании этого номера из 10 цифр мы не знаем исходный порядок в котором эти цифры формировали код. Единственная операция (она же способ отображения) которая позволяет игнорировать этот порядок, то есть результат которой не зависит от этого порядка это операция суммирования по модулю.

Множество тут одно из 10-ти элементов только с этим множеством надо рассматривать операции-отображения.

Со 4-го класса C/C++, алгебра Буля, целочисленная арифметика, вычисления целочисленной арифметики на логических элементах.

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

только не предугадывает, а вычисляет, наверно. Ведь вот это:

вычисляет наиболее вероятный

действительно, фактически равно одному слову "предугадывает ", что характерно, так сказать :).

Поэтому, наверно, должно быть или

"вычисляет наиболее вероятный ответ"

или просто

"предугадывает ответ"

Как известно математики обычно дают абсолютно точный ответ, и абсолютно бесполезный, вот я вас как математик и поправляю, чтобы соответствовать званию математика :).

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

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

Вы вот вспомните как люди построили множество пирамид в пустыне, был тогда спрос на пирамиды? -Конечно был! А что с производительностью? А производительность была не важна, важна была осуществимость идеи! То есть бывает так что производительность не надо упоминать, и мы с вами про какое направление человеческой деятельности говорим, не совсем понятно, и непонятно, соответственно, актуальность упоминания производительности.

А вот Алан Тьюринг не был фараоном, но смог организовать людей сделать машину которая умеет делать расчеты. Я к чему, важна не производительность, а правильное целеполагание, правильное понимание результата и того каким способом достичь этого результата. Я боюсь что у ИИ целепологание резко отличается от человеческого, если оно вообще есть.

С ИИ мне кажется мы скорее подходим пока под первый вариант. От ремесленников к рабочим из крестьян

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

- ошибаешься ты, Аксинья, ошибаешься! Гутаришь, а  послухать  нечего.  Ну,  куда  я

пойду от хозяйства? Опять же, на службу  мне  на  энтот  год.  Не  годится

дело... От земли я никуда не тронусь. Тут степь, дыхнуть есть чем, а  там?

Прошлую зиму ездил я с батей  на  станцию,  так  было-к  пропал.  Паровозы

ревут, дух там чижелый от горелого угля. Как народ живет - не знаю, может,

они привыкли к этому самому угару...  -  Григорий  сплевывает  и  еще  раз

говорит: - Никуда я с хутора не пойду.

Совершенствование средств производства зачастую приводило к росту числа тех, кто их использует.

Мне кажется пример с конвеером в контексте кто кого использует очень не однозначный :). Непонятно это милионы используют конвеер или это владельцы конвеера испльзуют миллионы посредством конвеера.

Кстати конвеер сам по себе тоже очень интересное изобретение, не знаю можно ли сравнивать с ГПТ, но у меня аналогия явно напрашивается.

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

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

А после открытия транзистора и замены им ламповой техники, насколько упростилась эта техника? А транзисторы ведь проще чем лампы... или нет? Или проще только в каком то смысле?

Не надо ничего придумывать, надо просто вспомнить как что происходило-развивалось раньше.

Кстати лично для меня средства разработки ОЧЕНЬ сильно упростились с начала 90-х годов прошлого века, но я не сказал бы что они стали доступнее большему количеству людей, хотя количество людей которые ими пользуются или пытаются пользоваться безусловно сильно возросло.

Прогресс идет давно и как-то волнами.

На смену античному рассвету приходит Святая инквизиция,

на смену научным прорывам, период мировых войн...

В общем скрипач, то есть программист не нужен, нужно КЦ.

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

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

А где написано что язык создан для производительности, или это только ваше пожелание?

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

Заметьте договориться надо с машиной, а не скомпилятором!

Вы же вот пишите:

Дэниел Лемир, может, и справился бы, но мы (как и авторы всех реализаций, когда я последний раз проверял) — не он

Зачем же вы себя так ограничиваете в том чего вы могли бы достичь? Хотя я честно говоря не знаю кто такой Дэниел Лемир, но теперь посмотрю конечно.

Эта претензия - не к самому языку C++, а лишь к его стандартной библиотеке, которая написана на нем же.

я бы даже дальше пошел в этом направлении:

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

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

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

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

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

Я понял что система у вас очень сложная и неодназначная и поэтому вдвойне интересная, спасибо. Глобальные проблемы мы все равно не решим в чате.

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

Раз вы в состоянии проверить что ассемблер хороший, что вам мешает написать этот ассемблер напрямую без капризного посредника в виде С++ компилятора? Нафига вам темплейты сдались? У меня есть только одно объяснение: рассказы про темплейты ценятся гораздо больше чем рассказы про ассемблер. Ассемблер почему то воспринимается как что-то из прошлого века, но только без него ничего не работает в конечном итоге.

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

10 - 20 даже 100 ассемблерных инструкций всегда проще понять и даже переписать если надо, чем выгребать все сайд эффекты с темплейтами помноженными на оптимизацию в компиляторе которая зависит от десятка настроек, и еще и меняется с версией компилятора. Дело даже не в скорости, темплейты на таком уровне это просто не надежное решение даже.

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

да фиг с ним можно без всяких умных слов, простой вопрос:

вы действительно считаете что масив констант запихать на стек в виде:

    std::vector<int> vec { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };

и делать это при каждом вызове это нормально?

по поводу

Попробуйте это сделать с полиморфными пикселями на виртуальных функциях и посмотрите на производительность.

я честно говоря не ожидал что кто-то на уровне пикселей может рассуждать про применений виртуальных функций, пиксели это байты шорты или инты, если попытаться работать с ними как с объектами - это что-то странное для меня, видимо поэтому я вас и не понимаю, теперь я вижу откуда у нас разногласия идут. Но я на уровне обработки пикселей вообще на ассемблере писал тело функции которая вызывается из С++, мне и в голову не приходило применять там темплейты или виртуальные функции, там как раз надо MMX-ы и SSE применять, поэтому без ассемблера никуда.

Если каждый байт-чар, шорт или инт в коде представлен как какая-то структура (объект) как какой-то полиморфный пиксель, тут немудрено огрести проблемы с производительностью. Я никогда такого не делал на таком низком уровне.

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

Тоже самое и с вашим примером если он что-то и доказывает то только потому что вы взяли за основу задачу, которая не имеет практического смысла, на приктике такие конструкции не то что никому не нужны , они будут мешать. Поэтому так писать никто не будет, поэтому вы и стесняетесь объяснять в чем смысл вашего кода, потому что объяснения вам самому покажут какая там ерунда написана.

Серьёзно?

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

Там нет цели минимизировать задержку, топовая производительность там не нужна.

я вам по секрету скажу что вы это сейчас рассказываете тому кто занимался, как раз, там, как раз, достижением Топовой Производительности со всеми MMX-ами, SSE-векторизациями, DirectX-ами, и фиг знает еще с чем. Ваш

лишний indirection в рантайме

это просто какой то ну 5-й класс средней школы по сравнению с какой-то академией если производить сравнение со всеми теми технодогиями который там используются для достижения Топовой Производительности.

и последствия её неинлайнинга?

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

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

1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, Software Architect
Lead