Обновить
128K+
588
Sergei Kushnirenko@dalerank

Люблю (ш)кодить, алгоритмы и старые авто.

760,8
Рейтинг
714
Подписчики
Отправить сообщение

В пределе строку можно ужать до одного указателя и 8 байт, но это слишком мало и размер и capacity тогда приходится держать в куче, рядом с самими данными. Объект (строка) выходит крошечный, массивы таких строк плотно ложатся в кеш, но за каждое обращение к длине или ёмкости платим индирекцией и лишним походом в память.
Чтобы её убрать, размер и capacity вытаскивают обратно в сам объект, рядом с указателем.
Дальше работает правило (для строк) N байт SSO-буфер вмещает N−1 символ и отсюда два типовых расклада: либо { char* + uint32 size + uint32 cap } и 16 байт, 15 символов inline.
Либо { size_t cap; size_t size; char* data; } и 24 байта, и при удачной упаковке 23 символа + терминатор.

23 символа звучит много, но на практике это покрывает где 40% строк, значит остальные 60% будут болтаться в памяти. А хочешь больше, ну скажем, 60% под ногами и нужен буфер символов эдак на 40, а это объект уже за 40 байт. И вот тут и приходит та самая расплата, чтто 40 байт против 8 или даже 24 уже жирный объект и две такие строки в одну кеш-линию (64 байта) уже не положить, и при проходе будет чтение из другой кешлинии.

Получается дилемма: либо мелкий объект и плотные массивы, но всего ~8 байт под SSO и индирекция на длинных строках, либо большой SSO-буфер и быстрый доступ к содержимому, но жирные строки, которые уже в кеш-линию не лезут.
Я на строках объяснил, но для всего остального суть таже. Нужный размер нужно мерять для своего домена применения, про 40 символов строки я могу сказать об играх, потому там есть замеры.


конечно, чето там только нет. и cli, и софтовые бряки, и триггеры на переменные.

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

Ага, как оказалось платить в С++ приходится за всё, даже за бесплатное и за Zero-cost, но язык даёт контроль над тем, кто платит, когда и чем.

Ну почему же не упомянутым, секций ровно 101-а. Разных базовых идей, понятий и механизмов, с которыми сталкивается с++ разработчик (да и не только с++) больше, но я постарался выбрать те, которые широко известны и применяются. Как сказали выше еще 101 это вводный курс, где в том числе дают и историю возникновения отдельных терминов и понятий.

Это вы устали читать :) шутка. А Мейерс с Александреску половину этого придумали

Ваш комментарий к предыдущей статье был более осмысленным. Этот я опять не понял

Есть такое, но это небольшая цена за гибкость и ловится тестами в 99% случаев

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

— Вас мучают эротические сны?

— Ну почему же мучают? (С)

Если я правильно помню порядок цен для 2023, то начиналось это все от 20к за одну игру и дальше зависело от ваших желаний. Они могли хоть отдельную команду вам дать для реализации хотелок

Да есть такая проблема, но это не беда именно ui а вообще любого middleware, которое нужно обновлять чаще одного раза в секунду.

у scaleform был механизм loadVariables который позволял прокидывать данные внутрь анимации, чем многие и пользовались размещая на простых лейаутах такие псевдовиджеты и работая с ними как со статической страницей, пересоздавая её а конце фрейма. Сами анимации уже загружены, и заново сделать разметку выходило дёшево.

Но яаще основной механизм взаимодействия был через ExternalInterface и GFx::Movie::Invoke или SetVariable со стороны C++, как вы описали, потому что возиться со своим парсером shtml было лень.

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

Вы хотели сказать Год-поддержка наверное Ж)

Когда я был студентом почти столько же времени назад (ИТМО), набрали 200 человек на вычтехнику, выпустилось почти 100 через пять лет, по сцеиальности работает где-то половина.

Абсолютно по темже самым причинам, что и Мне 34, я был в 65 странах, и у меня есть для вас лайфхак. Вы принесли мысль, которую можно обсудить

О... это вы еще двух частей про UI в играх не видели. GTA не написал, не люблю гта-лайк игры. Цезаря и Фараона написал.

виноват, убрал

так сложилось, я обычно только про него и пишу.

Эх, ну извините, я старался...

Ну так пятнишное, вспомнилось

1
23 ...

Информация

В рейтинге
1-й
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Разработчик игр
Старший
От 300 000 ₽
Git
C++
Многопоточность
Прикладная математика
ООП