|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
Rust vs C++26.06.2020, 16:10. Показов 47770. Ответов 660
Метки нет (Все метки)
0
|
|
| 26.06.2020, 16:10 | |
|
Ответы с готовыми решениями:
660
[Rust] Обсуждение возможностей и предстоящей роли языка Rust [Rust] Как привязывать WinAPI-функции к коду на Rust? Расскажите о своём опыте программирования на Rust |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 22.07.2020, 10:00 | ||
|
0
|
||
|
Модератор
|
||
| 22.07.2020, 10:10 | ||
|
Я, в таких случаях, пишу несколько тестовых вариантов и сравниваю время выполнения (что тоже нужно уметь делать правильно). Это и быстрее, и показывает настоящий результат, а не умозаключения.
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 22.07.2020, 10:28 | ||
|
Curry, Знать то могут. Только вот там есть ньюанс что если не развернулся цикл по элементам внутри оператора то и сам оператор не заинлайнится и обработка каждого элемента будет отдельной инструкцией. А если развернется то и заинлайнится и будет обрабатывать именно как вектора. а зависит это банально от того как обходятся элементы - через итератор или через индекс. через итератор он развернуть цикл не сможет даже при константном n, потому что значение указателя в компайлтайме не известно.
Добавлено через 12 минут А все эти протестируем - не более чем метод антинаучного тыка. Для того чтобы он стал научным нужно сначала отбирать варианты на основе анализа. А то такие перлы как в STL будут на каждом шагу. Видел как то коммент в нетрях std::experemental - закомменнтирован кусок кода и подписаны причины - многопоточное копирование вектора по тестам значительно медленнее чем однопоточное. Почему еще не выяснили. Это же насколько надо не понимать того как компутер компутит чтобы такую дурь то устраивать?
0
|
||
|
Модератор
|
||
| 22.07.2020, 10:48 | ||
|
Эксперимент проводить считали недостойным философы древней греции, ещё ко кто до Галилея, далее стало общепризнанным что эксперимент - способ научного познания. И познания кодогенераторов тоже. Мне приходится поглядывать в асм при написании программ под микроконтроллеры потому что под них компиляторы, случается, глючат. Но поглядывать и писать на асме большие разницы.
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 22.07.2020, 11:07 | ||||
|
Добавлено через 2 минуты Добавлено через 2 минуты Т.е. банально в случае с распараллеливанием STL нужно было не фигней страдать несеолько лет а просто понимать что ускорение копирования многопоточность в принципе дать не может - шина то не параллелится, а вот накладные расходы на тредсвитчинг будут ужаснейшими.
0
|
||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||||||||
| 22.07.2020, 14:55 | ||||||||||||
|
Вот данные по объему кода винды и линукса взяты не с потолка, а подкреплены источником. Они были рассмотрены и, как и следовало ожидать, опровергли ваши фантазии. Так что пока не найдете доказательств ваша болтовня останется только болтовней. Ладно авторы Си встроили язык макросов в свой язык - на то время вменяемых альтернатив такому костылю не было. Но называть подобное вершиной компьютерной мысли! Что дальше? Можно еще вспомнить задачу попасть ровно в такты периферии. Здесь высокоуровневые языки не пригодны в принципе - нельзя предсказать результирующий код с точностью до инструкции. Хорошо что таких мест мало и хватает именно вставок.
0
|
||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 22.07.2020, 15:19 | ||||
|
Добавлено через 5 минут Точно так же скриты/манаджед требуют платформозависимый рантайм. Добавлено через 8 минут
0
|
||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 22.07.2020, 15:21 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||
| 22.07.2020, 16:04 | ||||||||
|
Добавлено через 2 минуты Добавлено через 3 минуты Добавлено через 3 минуты Это при том что то что GC не способен управлять ресурсами и своевременно деинициализировать объекты, без чего автоматическое управление взаимосвязями не возможно - это англицким по монитору в мануале у оного GC написано. Добавлено через 16 минут Добавлено через 6 минут Так же как и о копайлтаймовых вычислениях. К примеру вы в шаблон декларативно грамматику задаете а он ее приводит к LL1 виду и рекурсивный спуск без возвратов генерирует. Добавлено через 7 минут Т.е. для того чтобы делать это более-менее эффективно у каждой переменной придется написать комментарий с указаной единницей измерения, а так же составить справочную таблицу операций допустимых для этих единиц измерений - т.е. проделать абсолютно ту же работу что и для реализации перегрузки. Собственно из подобных комментов и родилась перегрузка операторов - поиск и проверку по этой таблице просто переложили на комп.
0
|
||||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||||||||||||||
| 23.07.2020, 10:44 | |||||||||||||||||
|
Более того, в низкоуровневых языках по-прежнему постоянно приходится использовать ОС-специфичные библиотеки чтобы добиться максимальной производительности или функциональности (под что они в общем-то и заточены). Зачастую эти библиотеки заворачиваются в более или менее переносимые обертки. И даже в высокоуровневых языках вроде того же Питона бывает необходимость обратиться именно к функции конкретной ОС. Да хотя бы получить адрес домашнего каталога пользователя или переменные окружения. Так что да, даже в высокоуровневых языках встречается платформо-зависимый код.
Если же вы пытаетесь притянуть за уши контроль ошибок сложения величин с различными единицами измерения, то разочарую: такие ошибки - чрезвычайная редкость, гораздо чаще встречается неправильный знак (+/-) или неправильный индекс одной из десятка переменных одинакового типа. Просто потому что в формуле они обозначаются одной и той же буквой. Более того, в некоторых эмпирических формулах приходится сознательно выполнять странные операции вроде взятия корня из мощности, которое дает размерность длины (расчет трансформатора) или и вовсе экспонента от физической величины (вот только где видел такое с ходе не вспомню). Нет, это можно, конечно, обойти костылями в виде спецтипов коэффициентов преобразования. Но они усложнят код, не давая реальных преимуществ.
0
|
|||||||||||||||||
|
Модератор
|
|||
| 23.07.2020, 12:05 | |||
|
Добавлено через 7 минут Суть ведь в чём? В том, чтобы человек понимал суть математических построений, а не просто в одно поле вбил значение - в другом вылезло второе готовое. Вот для того начерталку и изучают.
0
|
|||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 23.07.2020, 12:57 | |||
|
Что арифметику знать надо, хотя есть калькуляторы, что физику, хотя есть программы моделирования. Что ассемлеры, хотя есть более высокоуровневые языки.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||||||||||
| 23.07.2020, 15:39 | |||||||||||||||||||
|
Добавлено через 24 минуты Добавлено через 14 минут NeoMatrix, Т.е. Core-i9 в данном вопросе, в работе, к примеру, инженера-конструктора, заменяет отдел расчетчиков и отдел чертежников - т.е. то что делал не инженерный персонал. А задача программиста - таки научить Core i9 все это делать с нужной точностью. И начерталка в этом плане вообще ни к чему - у компутера глазов нету, он пересечения узреть может только путем решения систем уравнений описывающих тела, так же как и все остальное сделать исключительно путем решения систем уравнений/табуляции функций и т.д. Начерталка этих вопросов не касается от слова абсолютно. Добавлено через 3 минуты Добавлено через 3 минуты Добавлено через 3 минуты Вот соответсвию всем этим правилам без перегрузки операторов и надо следить вручную. Встроенные типы не способны это контролировать автоматически. Добавлено через 5 минут
Добавлено через 40 секунд Добавлено через 6 минут Добавлено через 8 минут Именно поэтому концепция специализированных языков и умерла, как только процедурные языки дали возможность это делать хотя бы семантически эквивалентно добавлению в ядро. Это все банально композиция декомпозиций. И никакие языки тут за уши притягивать не надо. Достаточно высокоразвитых средств создания абстракций у универсального языка. Именно поэтому они называются универсальными - годны и для создания библиотеки - т.е. по факту специализированного языка, и для решения с ее помощью задачи. Мало того таким способом достигается то что абсолютно недоступно для "специализированных" языков - а именно подключение сразу нескольких специализированных библиотек - т.е. работа на стыке множества предметных областей, для чего в случае использования "специализированных" языков пришлось бы разрабатывать одноразовый язык на каждую задачу. Т.е. универсальные потому и универсальные что в плане возможностей специализации резко превзошли специализированные. Добавлено через 4 минуты Добавлено через 9 минут Т.е. еще раз для самых одаренных - если к примеру Microsoft решил что int будет иметь диапазон [-2,147,483,648, 2,147,483,647] и будет равен по диапазону long то он будет иметь этот диапазон под любой проц - хоть под x32 хоть под x64 хоть под Intel хоть под ARM. Если к примеру Intel для своего компилятора решит по другому, то у них будет по другому, но тоже под любой проц. Где тут зависимость от архитектуры конкретного проца, как это наблюдается к примеру у JavaScript? Добавлено через 5 минут Пока что видим что они тех средств которые есть для этого у С++ и частично у Ады они лишены напрочь.
0
|
|||||||||||||||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
||||||||
| 23.07.2020, 16:11 | ||||||||
|
В данном случае скрываются конкретные ассемблерные команды и способ обращения к памяти, но ни размер регистра, ни структура памяти не скрываются. Ну и по вашему коду не очевидно сколько лишних типов придется прописать и насколько усложнится взаимодействие между ними. То есть то что "намного" - очевидно. Вот, например, формула оценки КПД импульсного трансформатора (взято отсюда): F - частота (кГц), P - мощность (Вт), результат - проценты Формулька довольно простая, так что реализовать ее в виде кода не составит для вас труда.
0
|
||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||
| 23.07.2020, 17:03 | ||||||||||
|
А к примеру в вашем "свервысокоуровневом" JavaScript он будет зависеть от проца на котором оно запущено. И что по вашему означет не скрывается способ обращения к памяти? вот написал я к примеру
Добавлено через 4 минуты Добавлено через 1 минуту Добавлено через 1 минуту
0
|
||||||||||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||||
| 23.07.2020, 17:06 | |||||
|
0
|
|||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 23.07.2020, 17:09 | ||
|
0
|
||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|||
| 23.07.2020, 17:10 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 23.07.2020, 19:03 | |||
|
Добавлено через 1 час 52 минуты
0
|
|||
|
4148 / 2726 / 433
Регистрация: 09.09.2017
Сообщений: 12,080
|
|
| 23.07.2020, 19:41 | |
|
0
|
|
| 23.07.2020, 19:41 | |
|
[Rust] Time
Frontend Для RUST Просадки FPS в Rust Rust ошибка E0623 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|