Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)зависимости которые общие, есть зависимости которые привязаны к какой-то геопозиции, есть расчёты на основе лабораторных исследований для каких-то интервалов.Если зависимости стабильны, и не зависят, скажем, от модельного времени, только от структуры вычислений, то проще всего написать препроцессор, который будет сортировать формулы по порядку вычисления, и всё на том. Заодно выругается, если где цикл вылезет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 09:56 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
По поводу макросов в logger. Не вариант. Т.к есть требование от заказчика. Уровни логгирования должны быть управляемые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 10:11 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonПо поводу макросов в logger. Не вариант. Т.к есть требование от заказчика. Уровни логгирования должны быть управляемые.Ну и пусть себе управляются переменной или переменными. В чём вопрос-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 11:18 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_rukealon(Ruslan)зависимости которые общие, есть зависимости которые привязаны к какой-то геопозиции, есть расчёты на основе лабораторных исследований для каких-то интервалов.Если зависимости стабильны, и не зависят, скажем, от модельного времени, только от структуры вычислений, то проще всего написать препроцессор, который будет сортировать формулы по порядку вычисления, и всё на том. Заодно выругается, если где цикл вылезет :) ага, так и пришлось делать, только чуть хитрее, в итоге интерпретатор функционального языка получился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 11:43 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)iv_an_ruпропущено... Если зависимости стабильны, и не зависят, скажем, от модельного времени, только от структуры вычислений, то проще всего написать препроцессор, который будет сортировать формулы по порядку вычисления, и всё на том. Заодно выругается, если где цикл вылезет :) ага, так и пришлось делать, только чуть хитрее, в итоге интерпретатор функционального языка получился...Эксель? 8:O ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:05 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_rukealon(Ruslan)пропущено... ага, так и пришлось делать, только чуть хитрее, в итоге интерпретатор функционального языка получился...Эксель? 8:O нет, эксель конечно мощная программка, но такие объёмы и интерактивность не тянет, конкурирующий аналог . Собственно под него это решение тоже пойдёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:39 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)у меня был опыт написания вычислений для обработки массивов (инженерные расчёты у нефтяников) обычная задача: на входе есть 10 и больше именованных массивов - части может не быть, части данных может в них не быть, на выходе должно получиться тоже какие-то массивы которые можно посчитать. В идеале ещё должна быть возможно посчитать только часть выходных в общем виде расчёт можно описать вот так: Код: python 1. 2. 3. 4. 5. 6. 7. в нём есть зависимости которые общие, есть зависимости которые привязаны к какой-то геопозиции, есть расчёты на основе лабораторных исследований для каких-то интервалов. через год, сотня инженеров базовый код превращают в нечитаемую портянку на 10-ки тыщ строк в кучах модификаций (копипаст и правка - они так привыкли) kealon(Ruslan)iv_an_ruпропущено... Если зависимости стабильны, и не зависят, скажем, от модельного времени, только от структуры вычислений, то проще всего написать препроцессор, который будет сортировать формулы по порядку вычисления, и всё на том. Заодно выругается, если где цикл вылезет :) ага, так и пришлось делать, только чуть хитрее, в итоге интерпретатор функционального языка получился Здесь типичный пример over-engineering (в обоих предложенных решениях). Если минуточку подумать, то что такое значение в функциональном языке и почему оно вычилсяется лениво? Потому что значений там нет, а все значения это функции вычисляющие эти значения. Поэтому не надо придумывать никакой препроцессор или вообще другой язык. Надо просто буквально заменить значения на лямбды их вычисляющие. Это автоматически построит зависимости средствами языка. А для редукции применяется например мемоизация и COW. Ну и для неквалифицированных сотрудников написать пару макросов разворачивающих код вот в это все. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 12:43 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНадо просто буквально заменить значения на лямбды их вычисляющие....если компилятор не сдохнет, и если вы вытерпите весь сопутсвующий оверхед времени исполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:12 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Хотя конечно в связи с тем что в С++ лямбд нет, то такой код невозможен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:12 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_ru.если компилятор не сдохнет, и если вы вытерпите весь сопутсвующий оверхед времени исполнения. Чего вдруг и то и другое? Лямбды это обычные функции с т.з. компилятора. Они не вносят дополнительного оверхеда по скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:14 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyiv_an_ru.если компилятор не сдохнет, и если вы вытерпите весь сопутсвующий оверхед времени исполнения. Чего вдруг и то и другое? Лямбды это обычные функции с т.з. компилятора. Они не вносят дополнительного оверхеда по скорости.Как только компилятор не сможет заинлайнить какую-нибудь лямбду, у вас будет лишний вызов функции, с расходом регистров и ломкой конвейеров. Самое то, что нужно для длинного числогрызного цикла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:43 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruКак только компилятор не сможет заинлайнить какую-нибудь лямбду, у вас будет лишний вызов функции, с расходом регистров и ломкой конвейеров. Самое то, что нужно для длинного числогрызного цикла. Нет. Потому вызовов там от силы несколько десятков. Никакой инлайн там не нужен. Это подтверждается тем что интерпретатор не тормозил ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 13:57 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyiv_an_ruКак только компилятор не сможет заинлайнить какую-нибудь лямбду, у вас будет лишний вызов функции, с расходом регистров и ломкой конвейеров. Самое то, что нужно для длинного числогрызного цикла. Нет. Потому вызовов там от силы несколько десятков. Никакой инлайн там не нужен. Это подтверждается тем что интерпретатор не тормозил )))Предположу, что интерпретатор тормозил, просто авторы не знали, с чем сравнивать ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:01 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyХотя конечно в связи с тем что в С++ лямбд нет, то такой код невозможен Я акцентировал внимание на том что в ФП функцию и лямбда наделяют рядом свойств (чистота и частичная вычислимость) а в c++ это поскипали. А эти свойства были для чего-то нужны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:02 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
iv_an_ruAnatoly Moskovskyпропущено... Нет. Потому вызовов там от силы несколько десятков. Никакой инлайн там не нужен. Это подтверждается тем что интерпретатор не тормозил )))Предположу, что интерпретатор тормозил, просто авторы не знали, с чем сравнивать ;) Коллеги! А нет ли здесь борьбы противоположностей? Инлайнинг и lazy computing.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:05 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonAnatoly MoskovskyХотя конечно в связи с тем что в С++ лямбд нет, то такой код невозможен Я акцентировал внимание на том что в ФП функцию и лямбда наделяют рядом свойств (чистота и частичная вычислимость) а в c++ это поскипали. А эти свойства были для чего-то нужны...Чистота нужна для mix(), для автоматического параллелизма, и для прочего автоматического вкорячивания троек Хоара. В макроассемблере это всё как-то странно выглядело бы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:06 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytoniv_an_ruпропущено... Предположу, что интерпретатор тормозил, просто авторы не знали, с чем сравнивать ;) Коллеги! А нет ли здесь борьбы противоположностей? Инлайнинг и lazy computing....Перефразируя старую молитву, Боже, дай мне сил заинлайнить то, что можно заинлайнить, дай мне терпения заоткладывать то, что нельхзя заинлайнить, и дай мне мудрости, чтоб отличить первое от второго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:08 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonКоллеги! А нет ли здесь борьбы противоположностей? Инлайнинг и lazy computing.... Они ортогональны. Если лямбды все находятся в одной функции, то они могут быть заинлайнены. Просто в большинстве случаев это ни на что не влияет. Поскольку если речь про отложенные вычисления, значит то что могло быть заинлайнено настолько тяжелое что не имеет значения как его вызвать. iv_an_ruЧистота нужна для mix(), для автоматического параллелизма, и для прочего автоматического вкорячивания троек Хоара. В макроассемблере это всё как-то странно выглядело бы :) В моем примере вполне можно в макрос впихнуть параллельное выполнение не меняя юзерского кода. Просто как я уже говорил выше, нужно приоткрыть глаза и увидеть очевидное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:14 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytonЯ акцентировал внимание на том что в ФП функцию и лямбда наделяют рядом свойств (чистота и частичная вычислимость) а в c++ это поскипали. Поскипали только то, что реализуется средствами языка. Посмотрите http://www.boost.org/doc/libs/1_64_0/libs/phoenix/doc/html/phoenix/starter_kit.html Там все это есть. Другое дело что в императивных языках почти все можно написать без всей этой математической суеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 14:32 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
maytoniv_an_ruпропущено... Предположу, что интерпретатор тормозил, просто авторы не знали, с чем сравнивать ;) Коллеги! А нет ли здесь борьбы противоположностей? Инлайнинг и lazy computing.... одно другому не мешает, ленивый код полностью раскладывается в равноценный императивный - другое дело, что его гораздо больше выходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 17:30 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskymaytonЯ акцентировал внимание на том что в ФП функцию и лямбда наделяют рядом свойств (чистота и частичная вычислимость) а в c++ это поскипали. Поскипали только то, что реализуется средствами языка. Посмотрите http://www.boost.org/doc/libs/1_64_0/libs/phoenix/doc/html/phoenix/starter_kit.html Там все это есть. Другое дело что в императивных языках почти все можно написать без всей этой математической суеты. можно, но вот заметил что обычный инженерный состав декларативное описание понимает гораздо лучше императивного По коду, интерпретатор был написан на питоне (строчек 200+), так же как и исходный код. Работать он стал быстрее почти в два раза по сравнению с исходным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 17:36 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Anatoly Moskovskyпропущено... Поскипали только то, что реализуется средствами языка. Посмотрите http://www.boost.org/doc/libs/1_64_0/libs/phoenix/doc/html/phoenix/starter_kit.html Там все это есть. Другое дело что в императивных языках почти все можно написать без всей этой математической суеты. можно, но вот заметил что обычный инженерный состав декларативное описание понимает гораздо лучше императивного По коду, интерпретатор был написан на питоне (строчек 200+), так же как и исходный код. Работать он стал быстрее почти в два раза по сравнению с исходным.Помнится, на таких задачах питон проигрывал ровно в 100 раз сишному коду. Кстати, недавно опубликовали, как ускорили ПХП7 тоже в два раза относительно прежних версий. Теперь всего в 50 раз медленнее. Не шутка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2017, 23:16 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
SiemarglПомнится, на таких задачах питон проигрывал ровно в 100 раз сишному коду. Кстати, недавно опубликовали, как ускорили ПХП7 тоже в два раза относительно прежних версий. Теперь всего в 50 раз медленнее. Не шутка.Он всему проигрывает, вот только выбор не на моей стороне был, мне лишь пришлось с этой прогой жить. Причём, больше всего тормозит в ней не расчёт, а пересылка данных приложение<-> питон и постоянные апдейты гуи, на каждый чих в данных, которые они так и не пофиксили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2017, 00:16 |
|
||
|
На чём лучше писать код при одинаковом количестве строк: на C или на C++?
|
|||
|---|---|---|---|
|
#18+
Нахлынули воспоминания. Наши эксперименты с рендерингом 3Д-графики на С++/Python/PyPy 18150763 Уж 2 года прошло. Мдя. Здесь Змей проиграл С++ где-то 1000-кратно. Видимо динамическая типизация сожгла все полезные мегафлопы. Пай-пай (PyPy) чуть лучше. Где-то в 30 раз отстал от С++. Но все равно в хвосте от трендовых Go/C# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2017, 23:40 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39499692&tid=1340092]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
181ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 16ms |
| total: | 312ms |

| 0 / 0 |
