powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
25 сообщений из 409, страница 14 из 17
MSVC и GCC: совместимость кодировок исходников
    #39897152
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravВы понимаете что этот вызов normalize() - это два обращения к подсистеме динамической
памяти и эти обращения блокируют все потоки, которые в это время тоже вызывают new/delete
и тому подобное.

А ты понимаешь, что другого пути нет и все остальные языки "с поддержкой строк на уровне
языка" делают под капотом всё то же самое?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897154
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
petravВы понимаете что этот вызов normalize() - это два обращения к подсистеме динамической
памяти и эти обращения блокируют все потоки, которые в это время тоже вызывают new/delete
и тому подобное.

А ты понимаешь, что другого пути нет и все остальные языки "с поддержкой строк на уровне
языка" делают под капотом всё то же самое?пусть блокируют. ГУИ в одном основном потоке.
Исходя из старых практик разработки UI.
Нету прямой интеракции UI и объектов мультипоточности. Обычно создается некий
транспортный объект Model. Этот модел бегает туда-сюда от пользовательской формочки
к объекту представляющему собой WorkerProcess(Thread). Блокировки резольвятся на классичесокй
optimiztic/pessimistic transaction и мы выбираем тот режим который будет комфортным для конечного
пользователя или тот режим который будет гладко ложиться на бизнес-процесс.

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

Посмотрите как работают high-load социальные сети. Если бы графические объекты хоть что-то
блокировали то весь фейсбук сидел бы 100% времени в блокировках.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897155
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravВы понимаете что этот вызов normalize() - это два обращения к подсистеме динамической
памяти и эти обращения блокируют все потоки, которые в это время тоже вызывают new/delete
и тому подобное.

А ты понимаешь, что другого пути нет и все остальные языки "с поддержкой строк на уровне
языка" делают под капотом всё то же самое?

Это - предположение. 99% это зависит от того как будет написан код поточного метода.
Он может работать со старой версией строки создав предварительно ее копию.
Он может работать с референсом на строку для immutable strings.
Мы можем ввести понятие версионной строки и отслеживать некое
атомарное состояние счетчика транзакций над строками. И все это
автоматизировать.

Кстати здесь я еще больше согласен с Сидоровым что строка это все-таки
не массив char[] как бы мне этого не хотелось.

Вобщем.. исходя из наблюдения. Больше блокировок на I/O, Networking чем собстенно на
строковых объектах.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897157
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravВы понимаете что этот вызов normalize() - это два обращения к подсистеме динамической
памяти и эти обращения блокируют все потоки, которые в это время тоже вызывают new/delete
и тому подобное.

А ты понимаешь, что другого пути нет и все остальные языки "с поддержкой строк на уровне
языка" делают под капотом всё то же самое?

Я прямо сейчас готов написать функцию которая докажет тебе что это не так. Но в упрощённом сценарии. Все буквы ASCII, но в одной строке встречается восьмибитная Й, а в другой последовательность ЁЁ и эти строки считаются равными?

Если ты хочешь функцию на реальной реализации utf-8, то не просто так, но я сделаю. :)
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravВы понимаете что этот вызов normalize() - это два обращения к подсистеме динамической
памяти и эти обращения блокируют все потоки, которые в это время тоже вызывают new/delete
и тому подобное.

Исходя из старых практик разработки UI.
Нету прямой интеракции UI и объектов мультипоточности. Обычно создается некий
транспортный объект Model. Этот модел бегает туда-сюда от пользовательской формочки
к объекту представляющему собой WorkerProcess(Thread). Блокировки резольвятся на классичесокй
optimiztic/pessimistic transaction и мы выбираем тот режим который будет комфортным для конечного
пользователя или тот режим который будет гладко ложиться на бизнес-процесс.

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

Посмотрите как работают high-load социальные сети. Если бы графические объекты хоть что-то
блокировали то весь фейсбук сидел бы 100% времени в блокировках.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897159
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, я прошу прощения. Случайно изменил твой пост. Как откатить - не знаю.

Но - перепость заново а я старый удалю.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897160
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ok
Мне не трудно.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897161
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
эти обращения блокируют все потоки
это не страшно. ГУИ однопоточный.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897162
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav
эти обращения блокируют все потоки
это не страшно. ГУИ однопоточный.

Да... GUI однопоточный. Но он активно использует динамическую память. И если поток логики тоже агрессивно использует динамическую память, то поток GUI будет регулярно блокировать потоки логики. Просто в ваших задачах вам не нужно заботиться о производительности в таких мелочах и вы просто не знаете об этом. Но не во всех случаях это приемлемо.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897164
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Посмотрите как работают high-load социальные сети. Если бы графические объекты хоть что-то
блокировали то весь фейсбук сидел бы 100% времени в блокировках.

Да ты перепутал распределённый фейсбук и приложение работающее на одном компьютере. Что такое Фейсбук в комплекте:

- Огромное количество браузеров внутри которых работает программа на JS.
- Огромное количество кеширующих серверов.
- Огромное количество серверов логики и серверов БД.
- Сколько процессов запущено сейчас на всех этих серверах?
- Сколько RAID массивов задействовано, сколько виртуальных машин?

Да там даже графические объекты расположены на тонких клиентах!

Причём тут обычное приложение на C++?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897165
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
И если поток логики тоже агрессивно использует динамическую память, то поток GUI будет регулярно блокировать потоки логики.
да. Я хочу доказательства этого.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897167
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Как независимые потоки будут мешать друг другу?
Кто тут гуи хотел отделить?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897168
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
Посмотрите как работают high-load социальные сети. Если бы графические объекты хоть что-то
блокировали то весь фейсбук сидел бы 100% времени в блокировках.

Да ты перепутал распределённый фейсбук и приложение работающее на одном компьютере. Что такое Фейсбук в комплекте:

- Огромное количество браузеров внутри которых работает программа на JS.
- Огромное количество кеширующих серверов.
- Огромное количество серверов логики и серверов БД.
- Сколько процессов запущено сейчас на всех этих серверах?
- Сколько RAID массивов задействовано, сколько виртуальных машин?

Да там даже графические объекты расположены на тонких клиентах!

Причём тут обычное приложение на C++?

Стоп. Давай немного отложим обсуждение фейсбука.

Расскажи какие графические приложения ты разрабатываешь? Я не знаю. Возмножно они
у тебя очень плотно интерактируют с рычагами и джойстиками и средствами ввода.

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

Расскажи что у тебя там под капотом.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897175
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,

Как независимые потоки будут мешать друг другу?
Кто тут гуи хотел отделить?

Дело в том что структура динамической памяти - это по сути Синглетон. Любое обращение к ней (new/delete/malloc/free) - это блокировка. Можно, конечно, подумать о том, что бы, например, в DLL логики у нас была своя отдельная куча (и отдельный рунтайм) и мы возвращаем только интеллектуальные указатели в которых есть свой deleter. Но как-то я пока не встречал таких идей в статьях.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897178
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Любое обращение к ней (new/delete/malloc/free)

Ну ссылки то где что это проблема стоит обсуждения вообще?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897183
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Стоп. Давай немного отложим обсуждение фейсбука.

Расскажи какие графические приложения ты разрабатываешь? Я не знаю. Возмножно они
у тебя очень плотно интерактируют с рычагами и джойстиками и средствами ввода.

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

Расскажи что у тебя там под капотом.

Да ничего особенного. Работа с промышленным оборудованием. Мягкое реальное время приветствуется. Естественно не в потоке GUI. И, конечно, это не принципиально критично, поэтому оно мягкое и поэтому десктоп. Но проблемы такие бывают.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897184
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Давай сделаем два потока и будем там создвать строку с выводом в лог.
5 минут работы.
Будет тормозить доступ к памяти?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897188
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

Стоп. Давай немного отложим обсуждение фейсбука.

Расскажи какие графические приложения ты разрабатываешь? Я не знаю. Возмножно они
у тебя очень плотно интерактируют с рычагами и джойстиками и средствами ввода.

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

Расскажи что у тебя там под капотом.

Да ничего особенного. Работа с промышленным оборудованием. Мягкое реальное время приветствуется. Естественно не в потоке GUI. И, конечно, это не принципиально критично, поэтому оно мягкое и поэтому десктоп. Но проблемы такие бывают.

Я прошу прощения. Ты можешь мобилой сфоткать твой UI ?

Без торговых обозначений. Без лейблов. Просто какой-то функционал.
Я просто пытаюсь понять что за такая там у вас отрасль
где нужно UI так тесно интегрировать с динамической памятью и строками.

Насчет рантайма я не имею ничего против. Просто интересно где это критично.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897189
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
petrav,
Давай сделаем два потока и будем там создвать строку с выводом в лог.
5 минут работы.
Будет тормозить доступ к памяти?

Давай. Рабочий поток выводит на 1000 Гц, а поток GUI в тот же поток на 100 Гц. Мне интересна статистика по времени выделения памяти и вывода в лог. В обоих потоках. Статистика с помощью Windows API QPC. Жду результатов. И на слабых компьютерах тоже.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897194
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем UI в 100 Гц?

Я слышал что в топовых играх видяшки переключают front-back buffer до 120Гц. Но это игра. Где плавность
изменения графики - просто видно боковым зрением. И не более того.

А научные испытания на кроликах людях и обезянах показали что человек реагирует и осознает изменения
UI с периодом в 100 милисекунд.

Это примерно соответствует 10 герцам.

Можно и выше - но на реакцию человека и на принятие решения это не влияет.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897196
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А зачем UI в 100 Гц?
+1
Я фигею.
Мы о чем вообще тут говорим?
3D render?
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897198
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А зачем UI в 100 Гц?

100 Гц в UI действительно излишне. Я привёл это для того что бы потоки с большей вероятностью вмешивались друг в друга. Но он может создать несколько рабочих потоков и там логировать на 500 Гц.

Фотографировать UI, наверное, не стоит... В любом случае. :) Но там ничего необычного нет. GUI в любом случае агрессивно использует динамическую память. И я думаю лучше рабочие потоки максимально изолировать. Можно создать отдельную кучу с помощью Windows API, можно логику вынести в отдельные процессы. Но это усложнение и на него нет времени.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897200
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется но.. Microsoft Powe Point на на анимациях и спец-эффектах слайдов .. фейдингов
как раз и обеспечивает те самые 10 герц. Экономно. CPU не грузит. И люди довольны.

Как Anime-сериал прям.
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897202
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

Фотографировать UI, наверное, не стоит... В любом случае. :) Но там ничего необычного нет. GUI в любом случае агрессивно использует динамическую память. И я думаю лучше рабочие потоки максимально изолировать. Можно создать отдельную кучу с помощью Windows API, можно логику вынести в отдельные процессы. Но это усложнение и на него нет времени.

Я в этом смысле наверное похож на Торвальдса. Я - инженер. И люблю решать
инженерные головоломки. И мне глубоко безразлина контора в которой
ты работаешь. И я очень удивлён тем что ты нашел (!) реально нашел
проблему аллокации строк на СТЫКЕ UI и динамической памяти.

Я - правда удивлен. И мне кажется что если мы глубоко копнём в твою
проблему ... она окажется вообще не проблемой а просто архитектурной
фичей которая фиксится быстро.

Ты вот думаешь что для comparison двух utf-8 строк тебе надо обязательно
ре-аллоцировать (malloc/realloc) память? А я вот так не думаю.

Мне вот кажется что мы в состоянии решить эту задачу алгоритмически.

Давай просто разделим понятия хранения (storage) utf-8 строк и их представления (representation).
...
Рейтинг: 0 / 0
MSVC и GCC: совместимость кодировок исходников
    #39897203
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мне кажется но.. Microsoft Powe Point на на анимациях и спец-эффектах слайдов .. фейдингов
как раз и обеспечивает те самые 10 герц. Экономно. CPU не грузит. И люди довольны.

Как Anime-сериал прям.

С Повер-Поинт вообще проблем нет. Но речь идёт о работе с промышленным оборудованием и часто используя слабые компы. А не анимация про Си-шарп или про трусы модной фирмы.
...
Рейтинг: 0 / 0
25 сообщений из 409, страница 14 из 17
Форумы / C++ [игнор отключен] [закрыт для гостей] / MSVC и GCC: совместимость кодировок исходников
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]