Re[4]: Венчурное инвестирование и криптовалюта с налогами
От: Khimik  
Дата: 14.04.24 16:34
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Поэтому раздувание кода не только ускоряет код, но и замедляет его. Какая из тенденций побеждает, зависит от конкретной программы и конкретной характеристики загрузки, угадать это сложно, надо мерить.


Хорошо, я это не знал. Можно как вариант указать функцию и инлайнить/размножать в ней всё рекурсивно (кроме функций которые сами рекурсивны). Пробовать разные варианты, что указывать.
Я плюсы не знаю, спорить с местными не получится нормально, но в Delphi по-моему можно найти нишу для этого. Есть прослойка дельфистов, пишущих игры или что-то похожее, у них могут стоять задачи оптимизации. У меня несколько раз так было.
Со стандартными размножителями есть проблема — это мешает отладке. В Delphi XE 8, если указать инлайновость у функции, внутри её уже нельзя поставить брекпоинт. Может и в плюсах также? Тут по-хорошему надо иметь два варианта кода — неразмноженный и размноженный, и отдельно отлаживать каждый из них.

K>>Вам не понравились две конкретные мои идеи, но разве не логично что венчурные инвестиции — тема выгодная?


Pzz>Это непростой вопрос. На венчурные деньги хорошо делать проекты типа "наговнякать по-быстрому и срубить бабла". Наукоемкие проекты с большой исследовательской компонентой никто венчурным капиталом финансировать не будет. Венчурный капиталист хочет выйти через пару лет с прибылью, даже если и с вероятностью 1/10.


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

Pzz>В цело, я думаю, в России в обозримом будующем развитие будет идти за счет проектов с большим государственным участием. Вопрос только в том, удастся ли создать конструкцию, в которой заметное финансирование будет попадать в руки тех, кто может сделать что-то интересное, или все будет растекаться по "своим".


Я вот довольно часто слышал, что в России экономика очень рыночная. Хотя тут на данный момент у меня противоречивые сведения.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[5]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 16:56
Оценка: +2
Здравствуйте, Khimik, Вы писали:

Pzz>>Поэтому раздувание кода не только ускоряет код, но и замедляет его. Какая из тенденций побеждает, зависит от конкретной программы и конкретной характеристики загрузки, угадать это сложно, надо мерить.


K>Хорошо, я это не знал. Можно как вариант указать функцию и инлайнить/размножать в ней всё рекурсивно (кроме функций которые сами рекурсивны). Пробовать разные варианты, что указывать.


Слушай, над этим очень плотно работают ребята, которые делают gcc и ребята, которые делают LLVM. И это — две разные команды. Ты их не переплюнешь ни в одиночку, ни с маленьким стартапом. К тому же, ты даже простых вещей, как выясняется, не знаешь. А там — целая куча тонкостей, о которых и я не знаю.

K>Я вот довольно часто слышал, что в России экономика очень рыночная. Хотя тут на данный момент у меня противоречивые сведения.


Венчурный капитал любит проекты с быстрой и большой отдачей. Это — такая американская чисто специфика, быстренько набросали на Питоне, сунули в продакшен и заработали миллион.

Два месяца труда парочки-троечки "стартаперов" не могут при справедливой экономике стоить миллион. Тут игра и правда идет на том, что выигрывает 1 из десяти. Плюс, в США у населения очень много лишних денег.
Re[5]: Венчурное инвестирование и криптовалюта с налогами
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.04.24 17:21
Оценка:
Здравствуйте, Khimik, Вы писали:

Pzz>>Поэтому раздувание кода не только ускоряет код, но и замедляет его. Какая из тенденций побеждает, зависит от конкретной программы и конкретной характеристики загрузки, угадать это сложно, надо мерить.


K>Хорошо, я это не знал. Можно как вариант указать функцию и инлайнить/размножать в ней всё рекурсивно (кроме функций которые сами рекурсивны). Пробовать разные варианты, что указывать.


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

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


K>Я плюсы не знаю, спорить с местными не получится нормально, но в Delphi по-моему можно найти нишу для этого. Есть прослойка дельфистов, пишущих игры или что-то похожее, у них могут стоять задачи оптимизации. У меня несколько раз так было.


А, так ты про дельфи вообще. На дельфях рынок сам по себе маленький. Я думаю, ты со своим проектом — большая часть этого рынка



K>Со стандартными размножителями есть проблема — это мешает отладке. В Delphi XE 8, если указать инлайновость у функции, внутри её уже нельзя поставить брекпоинт. Может и в плюсах также? Тут по-хорошему надо иметь два варианта кода — неразмноженный и размноженный, и отдельно отлаживать каждый из них.


Нет, в плюсах не так же. Не знал, что в дельфях всё так запущено


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


Тогда это уже мало похоже на венчурное инвестирование. И да, мы твои идеи часто не понимаем, и ты часто обещаешь что-то потом обдумать, но всегда обманываешь


K>Я вот довольно часто слышал, что в России экономика очень рыночная. Хотя тут на данный момент у меня противоречивые сведения.


Маньяк Робокряк колесит по городу
Re[6]: Венчурное инвестирование и криптовалюта с налогами
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.04.24 17:24
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Слушай, над этим очень плотно работают ребята, которые делают gcc и ребята, которые делают LLVM. И это — две разные команды. Ты их не переплюнешь ни в одиночку, ни с маленьким стартапом.


Ещё MSVC, ICC как минимум. И кроме них ещё есть компиляторы


Pzz>К тому же, ты даже простых вещей, как выясняется, не знаешь. А там — целая куча тонкостей, о которых и я не знаю.


Лучший человек России, учёный и философ. Куда нам, лапотникам, до него
Маньяк Робокряк колесит по городу
Re[6]: Венчурное инвестирование и криптовалюта с налогами
От: Khimik  
Дата: 14.04.24 17:45
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Слушай, над этим очень плотно работают ребята, которые делают gcc и ребята, которые делают LLVM. И это — две разные команды. Ты их не переплюнешь ни в одиночку, ни с маленьким стартапом. К тому же, ты даже простых вещей, как выясняется, не знаешь. А там — целая куча тонкостей, о которых и я не знаю.


Я про LLVM ничего не знаю, написано что он и к Delphi подходит, ну ок. Тут разговор опять упирается в то, что в интернете принято смеяться над Delphi, но вот шароварщики знают, что для шаровары Delphi очень хорош.
Размножитель кода, который я предлагаю, выглядит очень простым проектом, при рвении его может один человек написать за два месяца (полагаю).
У меня ещё вопрос по C++. В Delphi, как я понимаю, нельзя инлайнить функции из других модулей, потому что каждый модуль (файл .pas) компилируется в файл .dcu с тем же именем, и далее .dcu файлы линкуются. Т.е. каждый модуль должен быть самодостаточным для собственной компиляции. А в плюсах с этим как?
И мне интересно, как же в плюсах решена проблема, что автоматически размножаемый код труднее отлаживать7
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Отредактировано 14.04.2024 17:48 Khimik . Предыдущая версия . Еще …
Отредактировано 14.04.2024 17:45 Khimik . Предыдущая версия .
Re[7]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 18:03
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Я про LLVM ничего не знаю, написано что он и к Delphi подходит, ну ок. Тут разговор опять упирается в то, что в интернете принято смеяться над Delphi, но вот шароварщики знают, что для шаровары Delphi очень хорош.


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

K>Размножитель кода, который я предлагаю, выглядит очень простым проектом, при рвении его может один человек написать за два месяца (полагаю).


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

K>У меня ещё вопрос по C++. В Delphi, как я понимаю, нельзя инлайнить функции из других модулей, потому что каждый модуль (файл .pas) компилируется в файл .dcu с тем же именем, и далее .dcu файлы линкуются. Т.е. каждый модуль должен быть самодостаточным для собственной компиляции. А в плюсах с этим как?


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

K>И мне интересно, как же в плюсах решена проблема, что автоматически размножаемый код труднее отлаживать7


Опять же, это не свойство языка, а свойство компилятора.

В gcc эта проблема решается плохо.
Re[7]: Венчурное инвестирование и криптовалюта с налогами
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.04.24 18:21
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Я про LLVM ничего не знаю, написано что он и к Delphi подходит, ну ок.


Ну так узнай


K>Тут разговор опять упирается в то, что в интернете принято смеяться над Delphi, но вот шароварщики знают, что для шаровары Delphi очень хорош.


Когда-то был


K>Размножитель кода, который я предлагаю, выглядит очень простым проектом, при рвении его может один человек написать за два месяца (полагаю).


Ну сядь и напиши


K>У меня ещё вопрос по C++. В Delphi, как я понимаю, нельзя инлайнить функции из других модулей, потому что каждый модуль (файл .pas) компилируется в файл .dcu с тем же именем, и далее .dcu файлы линкуются. Т.е. каждый модуль должен быть самодостаточным для собственной компиляции. А в плюсах с этим как?


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


K>И мне интересно, как же в плюсах решена проблема, что автоматически размножаемый код труднее отлаживать7


Не знаю о какой проблеме ты говоришь. Видимо, в плюсах её не существует
Маньяк Робокряк колесит по городу
Re[8]: Венчурное инвестирование и криптовалюта с налогами
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 14.04.24 18:23
Оценка:
Здравствуйте, Pzz, Вы писали:

K>>Я про LLVM ничего не знаю, написано что он и к Delphi подходит, ну ок. Тут разговор опять упирается в то, что в интернете принято смеяться над Delphi, но вот шароварщики знают, что для шаровары Delphi очень хорош.


Pzz>У тебя поразительная самоуверенность. Ты ничего не знаешь про компиляторы, но имеешь про них свое мнение.


Это один из лучших людей России, ученый и философ


K>>И мне интересно, как же в плюсах решена проблема, что автоматически размножаемый код труднее отлаживать7


Pzz>Опять же, это не свойство языка, а свойство компилятора.


Pzz>В gcc эта проблема решается плохо.


А что за проблема-то?
Маньяк Робокряк колесит по городу
Re[8]: Венчурное инвестирование и криптовалюта с налогами
От: Khimik  
Дата: 14.04.24 18:26
Оценка: :))
Здравствуйте, Pzz, Вы писали:

Pzz>Он не нужен. Похожие техники используются в серьезных компиляторах. Там все не так просто, как ты думаешь. Это серьезная наука, ей активно занимаются.


Сорри, у меня ощущение что вы сами не знаете по теме, просто привыкли отрицать мои идеи, и кидаете умные слова чтобы типа аргументировать. Можно какую-то конкретику по моим вопросам?
Мне такой размножитель кода пригодился бы (немного), и я мог бы его купить если это несложно, так что прошу поконкретнее.
То, что я предлагаю, называется метапрограммированием, в LLVM и gcc оно используется? Если сделать то что я предлагаю, дальше, возможно, можно будет придумать ещё какие-то фичи, использующие разбивку кода на несколько вариантов для разных компиляций.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[8]: Венчурное инвестирование и криптовалюта с налогами
От: Kerk Россия  
Дата: 14.04.24 18:27
Оценка:
Здравствуйте, Marty, Вы писали:

K>>У меня ещё вопрос по C++. В Delphi, как я понимаю, нельзя инлайнить функции из других модулей, потому что каждый модуль (файл .pas) компилируется в файл .dcu с тем же именем, и далее .dcu файлы линкуются. Т.е. каждый модуль должен быть самодостаточным для собственной компиляции. А в плюсах с этим как?


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


В первую очередь в плюсах нету модулей. До недавнего времени. Соответственно и проблемы нет. Что там сейчас в новых плюсах с модулями и inline не знаю, не очень интересно.

Но не могу порадоваться тому, что наш философ снова к нам пришел с идеями, которые он толком не продумал, но непременно кто-то должен их подхватить и реализовать.
No taxation without representation
Re[9]: Венчурное инвестирование и криптовалюта с налогами
От: graniar  
Дата: 14.04.24 18:32
Оценка:
Здравствуйте, Marty, Вы писали:

M>Это один из лучших людей России, ученый и философ


Сударь, да Вы льстец!
Re[9]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 18:33
Оценка:
Здравствуйте, Marty, Вы писали:

Pzz>>В gcc эта проблема решается плохо.


M>А что за проблема-то?


После оптимизации код плохо попадает в строки исходного текста.
Re[9]: Венчурное инвестирование и криптовалюта с налогами
От: graniar  
Дата: 14.04.24 18:36
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Сорри, у меня ощущение что вы сами не знаете по теме, просто привыкли отрицать мои идеи, и кидаете умные слова чтобы типа аргументировать. Можно какую-то конкретику по моим вопросам?


https://wiki.gentoo.org/wiki/GCC_optimization/ru
Re[9]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 18:38
Оценка:
Здравствуйте, Khimik, Вы писали:

Pzz>>Он не нужен. Похожие техники используются в серьезных компиляторах. Там все не так просто, как ты думаешь. Это серьезная наука, ей активно занимаются.


K>Сорри, у меня ощущение что вы сами не знаете по теме, просто привыкли отрицать мои идеи, и кидаете умные слова чтобы типа аргументировать.


Извини, мне не интересно разговариать на таком уровне.

K>Можно какую-то конкретику по моим вопросам?


Я приводил конкретику.

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



K>То, что я предлагаю, называется метапрограммированием, в LLVM и gcc оно используется? Если сделать то что я предлагаю, дальше, возможно, можно будет придумать ещё какие-то фичи, использующие разбивку кода на несколько вариантов для разных компиляций.


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

То, что ты предлагаешь, называется инлайнинг и loop unrolling. Любой взрослый компилятор умеет это делать. И делается это обычно не с помощью преобразования исходного текста а путем манипуляций с внутренним представлением кода, промежуточным между исходным текстом и выходным ассемблером,
Re[9]: Венчурное инвестирование и криптовалюта с налогами
От: rg45 СССР  
Дата: 14.04.24 18:47
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Сорри, у меня ощущение что вы сами не знаете по теме, просто привыкли отрицать мои идеи, и кидаете умные слова чтобы типа аргументировать. Можно какую-то конкретику по моим вопросам?

K>Мне такой размножитель кода пригодился бы (немного), и я мог бы его купить если это несложно, так что прошу поконкретнее.
K>То, что я предлагаю, называется метапрограммированием, в LLVM и gcc оно используется? Если сделать то что я предлагаю, дальше, возможно, можно будет придумать ещё какие-то фичи, использующие разбивку кода на несколько вариантов для разных компиляций.

И грабить корованы.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[10]: Венчурное инвестирование и криптовалюта с налогами
От: Khimik  
Дата: 14.04.24 18:49
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Метапрограммированием называется возможность описания правил, с помощью которых автоматически генерируется код.


Pzz>То, что ты предлагаешь, называется инлайнинг и loop unrolling. Любой взрослый компилятор умеет это делать. И делается это обычно не с помощью преобразования исходного текста а путем манипуляций с внутренним представлением кода, промежуточным между исходным текстом и выходным ассемблером,


Ну так как же отлаживать код, шагать по операторам, если они запутаны/размножены?
То что я предлагаю, возможно, можно использовать не только для инлайнинга/унроллинга, но и для других задач. Я полагаю это корректно называть метапрограммированием, потому что оно подразумевает вставку в код управляющих символов и дальнейшее преобразование кода в соответствии с этим. Например, к объявлению функции добавляем комментарий #fullinline, и размножатель инлайнит всё что есть в этой функции. Если добавить комментарий #fullqfor, размножатель размножает в ней все циклы.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[10]: Венчурное инвестирование и криптовалюта с налогами
От: Khimik  
Дата: 14.04.24 18:52
Оценка:
Здравствуйте, graniar, Вы писали:

K>>Сорри, у меня ощущение что вы сами не знаете по теме, просто привыкли отрицать мои идеи, и кидаете умные слова чтобы типа аргументировать. Можно какую-то конкретику по моим вопросам?


G>https://wiki.gentoo.org/wiki/GCC_optimization/ru


Мне бы что-нибудь такое по Delphi...
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Re[11]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 18:56
Оценка:
Здравствуйте, Khimik, Вы писали:

Pzz>>То, что ты предлагаешь, называется инлайнинг и loop unrolling. Любой взрослый компилятор умеет это делать. И делается это обычно не с помощью преобразования исходного текста а путем манипуляций с внутренним представлением кода, промежуточным между исходным текстом и выходным ассемблером,


K>Ну так как же отлаживать код, шагать по операторам, если они запутаны/размножены?


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

K>То что я предлагаю, возможно, можно использовать не только для инлайнинга/унроллинга, но и для других задач. Я полагаю это корректно называть метапрограммированием, потому что оно подразумевает вставку в код управляющих символов и дальнейшее преобразование кода в соответствии с этим. Например, к объявлению функции добавляем комментарий #fullinline, и размножатель инлайнит всё что есть в этой функции. Если добавить комментарий #fullqfor, размножатель размножает в ней все циклы.


Ты предлагаешь ручную разметку применяемых методов оптимизации по исходному коду. Взрослые компиляторы так умеют. Это не называется метапрограммированием.

По определению, программирование — это прямое написание кода программы. Метапрограммирование — это написание кода, который порождает код программы.
Re[4]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 19:02
Оценка:
Здравствуйте, Marty, Вы писали:

M>Это называется разворачивание циклов. Я так делал ручками в самом начале нулевых, начитавшись книжек мышаха. И некоторое время это даже помогало увеличить производительность. А потом, внезапно, оказалось, что компиляторы научились это делать сами, и на такие ручные оптимизации я уже лет 20 как забил


А мне доводилось программировать машинку с очень маленьким кешом инструкций и довольно медленной памятью. И там, неожиданно, оптимизация по размеру заметно ускоряла программу по сравнению с оптимизацией по скорости.
Re[4]: Венчурное инвестирование и криптовалюта с налогами
От: Pzz Россия https://github.com/alexpevzner
Дата: 14.04.24 19:06
Оценка:
Здравствуйте, Marty, Вы писали:

K>>А разве не купят? Или скорее обратятся к автору — вот экзешник моей программы, переделайте его под Mac, если что непонятно — спрашивайте.


M>Не купят. Он нужен будет полутора криворуким калекам, которые на старте проекта не задумались над кроссплатформенностью и не написали свою абстракцию над ОС, и не додумались взять какой-либо готовый фреймворк типа Qt.


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

Но они тоже не купят.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.