Size: a a a

Обсуждения техдирские

2021 August 21

MG

Maksim Gorshenin in Обсуждения техдирские
фраза была на уровне шутки) хотя у нас есть проект, где питон запускает плюсовые треды и ждет колбеки)
источник

PD

Phil Delgyado in Обсуждения техдирские
Точно не поймет, кстати?
источник

АЛ

Андрей Лесных... in Обсуждения техдирские
А можно несколько примеров, что вызвало такую лютую оторопь?
источник

IS

Igor Shekalev in Обсуждения техдирские
Не важно, что там внутри компилятора. Я именно с точки зрения программиста говорю.
источник

GM

Gleb Mekhrenin in Обсуждения техдирские
дело вообще не в комплияторе
источник

IS

Igor Shekalev in Обсуждения техдирские
Да я выше уже написал, магия. Опции добавляются не там, где ожидаешь, например.
Я помню, как убили часа три на то, чтобы передать настройку веб-серверу что-ли, выяснилось что надо а-ля JSON отдать куда-то в настройки самого приложения.

И в то время VS категорически не умел single executable делать - он его собирал, но нежизнеспособный.

Раз в месяц какие-то несовместимости вылезали. У программистов разные версии VS и они не могут собрать executable работающий с одинаковой версией .net.
И т.д и т.п.
источник

p

pragus in Обсуждения техдирские
Все что я видел - это были явные интринсики или руками написанные блоки ассемблера.
источник

p

pragus in Обсуждения техдирские
inline asm решает этот вопрос.

Т.е. берём кусок asm из openssl или генерируем его силами clang/rustc/numba/julia и вставляем в hot path.

Цена вопроса - noninlined function call
источник

IS

Igor Shekalev in Обсуждения техдирские
Тогда пример, pls.
По все, что я видел в go выглядит вполне логично. Ну кроме простейших "косячков" типа необходимости make для map и ее отсутствия для slice.
источник

IS

Igor Shekalev in Обсуждения техдирские
Есть быстрый и без аллокаций способ превратить go-шный string (в UTF8) в C++-ный std::wstring (в UTF16), а потом также быстро это забрать обратно?
Хочу!
источник

GM

Gleb Mekhrenin in Обсуждения техдирские
горутины, переключине контекста и вот это всё такое болото, но узнаете вы это когда(если) появятся рпс'ы и про то как память оно не жрет вы тоже узнаете видимо потом, как и про особенности работы gc :) ну и вообще это же консалтинг уже так что не предметно
https://blog.twitch.tv/ru-ru/2019/04/10/go-memory-ballast-how-i-learnt-to-stop-worrying-and-love-the-heap-26c2462549a2/
ну и ключевые слова для гугла Goroutines and Parallelism, Concurrency, gomaxprocs и вот это всё. Хотя если у вас 50 рпс то можно хоть на пхп писать
источник

p

pragus in Обсуждения техдирские
Строка в go - это структура из 2 полей: указатель и длина.
источник

IS

Igor Shekalev in Обсуждения техдирские
Я знаю как оно устроено, но это мало что дает в плане ее превращения в std::string без копирования и аллокаций, в том числе и потому, что std::string изменяемая, в отличии от гошной.
источник

IS

Igor Shekalev in Обсуждения техдирские
Охотно верю, но мы пока не сталкивались.

Магия .net другая, она возникает уже на этапе разработки - неинтуитивные решения, непонятный (требующий в разы больше времени на "раскопки") pipeline настроек объектов.
Оно возникает уже сразу, а не на 100 rps.
источник

p

pragus in Обсуждения техдирские
Так вся конверсия на стороне c++

Это ж фактически char* + len

А интерпретация памяти - это уже вызываемой стороне.
источник

IS

Igor Shekalev in Обсуждения техдирские
Вернемся чуть назад. Я утверждал вот что: если код на стороне С++ короткий/быстрый, то даже если он вдвое быстрее того, что можно написать на go, выигрыша это может и не дать из-за затрат времени на передачу параметров.

"char*" для плюсов это кодировка ANSI, а у go там UTF8 => будет неприятная конверсия в wchar_t* с аллокацией.
Ну и потом это все надо обратно вернуть. Да так, чтобы GC не сорвало крышу.
источник

p

pragus in Обсуждения техдирские
Ну что поделать если c++ не может взять буфер и интерпретировать его как utf8 строку без аллокации.
источник

ЮВ

Юра В 🦄 in Обсуждения техдирские
https://habr.com/ru/post/573352/

Эх, вот мы и докатились, когда в контроллер резервного питания ставят cortex M4F о 168МГц. Даже не особо удивительно, что у всех поставки сыплются
источник

IS

Igor Shekalev in Обсуждения техдирские
С++ возник лет за 10 до появления UTF8, так что не удивительно 😊
Наверняка есть внешние средства для строк в UTF8 , но их мутабильность в любом случае делает интероп сложной затеей. Объекты разные по сути.
источник
2021 August 22

S

Sergey in Обсуждения техдирские
звучит так что у вас никто не умел его готовить, да это не 1 exe, но собирать проекты студия могла еще с compact framework и они работали, с зависимостями и тем что должно быть установлено в core уже во много раз лучше

интересно чего за настройку вы передавали и куда
источник