С чего бы? Буфер у каждого вызова свой — там нет реентерабельности.
Надо конечно посмотреть кот, но вряд ли это убирает лок. Скорее всего просто каждый поток выплевывает пачку вызовов cout << x << y<< z <<… << endl единой пачкой через этот буфер, но также по очереди между потоками.
ЗЫ (а вы видели, какой это ад в ассемблере ?)
По поводу устойчивости к ошибкам человека надо читать 1ю часть. Простой и понятный и при этом однозначный синтаксис тут в помощь.
Перерасход памяти для строк зависит от реализации. Пусть строка s1 содержит 1024 символа. Сколько будет задействовано памяти (и какой — стек, хип?) после операций s1[14] = 'x'? s1 += 'x'?
>ФП — повсюду — прошу ссылку для оценки
Контроль времени выполнения — это не про рантайм этап, а про время исполнения, например что функция выполнялась не дольше 100мс.
> Можно кастомизировать глобальный аллокатор либо сделать свои арены — тоже прошу ссылку
Просто я совсем не верю в чистое ФП и в применимость его на практике для рассматриваемой области применения (см часть 1). Как элемент ЯП для мультипарадигменных языков — наоборот хорошо, и в таблице выделена отдельная колонка.
Присоединяюсь к вопросам. Слегка сумбурный стиль изложения.
Очень бы помогла структурная схема с основными компонентами и указанием — что где крутится (ака автоматика) и как эти компоненты — сервер, диммеры, контроллер, датчики, (блок симисторов тоже компонент ?) связаны.
Пришлось погуглить, чтобы понять хоть что то. Хотя ардуинщикам наверное, все очевидно, чтобы объяснять )
Когда невозможно даже найти ответственного за поломанный блок.
/sarcasm
где то тут была статья про восстановление распределенной ФС
А основа на С++.
В любом случае пруф бы не помешал.
В данном случае я не разделяю С/С++
Ведь C#/IL-код выполняется именно поверх слона — машиной CLI/CLR, которая внезапно написана на С++.
О каком низком уровне можно говорить?
А вот о низкоуровневых возможностях — вполне.
Надо конечно посмотреть кот, но вряд ли это убирает лок. Скорее всего просто каждый поток выплевывает пачку вызовов cout << x << y<< z <<… << endl единой пачкой через этот буфер, но также по очереди между потоками.
ЗЫ (а вы видели, какой это ад в ассемблере ?)
но оптимизатор может в другом треде ее заранее закешировать, например вынести из цикла =)
volatile запрещает именно такое поведение. Тем не менее стандарт явно прописывает, что не годится для использования для многопоточного обращения
На PS не пишу принципиально — и язык ужасный, и плюнули в душу похерив все разработки.
Если осилить синтаксис и концепции, выглядит неплохо.
Но в целом в Расте хоть есть выбор — как считать.
Это конечно играет роль только в случаях с сайд-эффектом, но можно получить при использовании глобальных или просто общих ресурсов.
Тут даже более жесткий пример.
Перерасход памяти для строк зависит от реализации. Пусть строка s1 содержит 1024 символа. Сколько будет задействовано памяти (и какой — стек, хип?) после операций s1[14] = 'x'? s1 += 'x'?
>ФП — повсюду — прошу ссылку для оценки
Контроль времени выполнения — это не про рантайм этап, а про время исполнения, например что функция выполнялась не дольше 100мс.
> Можно кастомизировать глобальный аллокатор либо сделать свои арены — тоже прошу ссылку
Также см.по поводу Дельфи
Eiffel — элементарно забыл. Посмотрел сейчас, очень специфический сайт — неудобно находить информацию. Не возьмусь сам оценивать.
Контрактное программирование в таблице даже выделено отдельной колонкой.
Очень бы помогла структурная схема с основными компонентами и указанием — что где крутится (ака автоматика) и как эти компоненты — сервер, диммеры, контроллер, датчики, (блок симисторов тоже компонент ?) связаны.
Пришлось погуглить, чтобы понять хоть что то. Хотя ардуинщикам наверное, все очевидно, чтобы объяснять )
Я за их потери производительности платить не буду. 1:100
Проигрывает АО из-за ручного управления памятью и многопоточностью. Также нетипизированные указатели и приведение типов никуда не делись.
Но поскольку это языки одной группы — разница небольшая.
Остальное в этом DIP — абстрактные игры разума, не нужные на практике (ок, наверняка возможно придумать пример нужности).
Такие вещи и угробили D2 — ненужное переусложнение. К огромному моему сожалению — я даже TDPL с Амазона купил (