Войти
ФлеймФорумПрограммирование

Боттелнек загрузки уровня карты миссии (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 428 Следующая »
#15
11:47, 23 мар. 2021

innuendo
> общий % меняется от этого ?
Ну конечно, то ли 1000 от 1000+10, то ли 10 от 10+10.


#16
11:52, 23 мар. 2021

Delfigamer
> > общий % меняется от этого ?
> Ну конечно, то ли 1000 от 1000+10, то ли 10 от 10+10.

поясни

#17
13:04, 23 мар. 2021

innuendo
> поясни
1000/(1000+10) > 10/(10+10)
Что непонятного то?

#18
13:05, 23 мар. 2021

innuendo
> > > общий % меняется от этого ?
> > Ну конечно, то ли 1000 от 1000+10, то ли 10 от 10+10.
>
> поясни
ох лол

phridrich
> Ну так parse and validate data
Тоже занимает время, если не выносить эту стадию в препроцесс, и тогда pointer fixup не нужен.
Тут или parse and validate data вытащен в препроцесс, а в рантайме только pointer fixup, или parse and validate data в рантайме, при создании и инициализации кучи объектов (что тоже небесплатно).

> А что за тема с std::string std::map?
это Иннуэндо об одном из способов реализации "ресурс-менеджера" для сценария "с CResource".
держать кэш ресурсов в std::map<std::string, std::weak_ptr<T>> чтобы не грузить уже загруженные для "живых" объектов ресурсы повторно.
Вот он утверждает, что "из его практики" - это хороший и быстрый (по времени загрузки) способ, но подтвердить тут он эту свою практику реальными цифрами не сможет.

Есть ещё промежуточный вариант между прям "железным инплэйсом" и "кашей с мапой", который я Иннуэнде объяснял тут давно, но он видимо (тогда)не понял/(теперь) не помнит.

#19
13:06, 23 мар. 2021

MrShoor

ты хоть понял, в чём смысл темы?

#20
13:08, 23 мар. 2021

Xunter
> Вот он утверждает, что "из его практики" - это хороший и быстрый (по времени
> загрузки) способ, но подтвердить тут он эту свою практику реальными цифрами не
> сможет.

что ты можешь сказать кроме аллокации и бла-бла-бла? какая твоя реальная практика кроме корабликов?

> и "кашей с мапой", который я Иннуэнде объяснял тут давно, но он видимо
> (тогда)не понял/(теперь) не помнит.

тебе 10 лет назад пояснили - но так и не дошло

#21
(Правка: 21:34) 13:15, 23 мар. 2021

3dhater
> > тема про std::string std::map
>
> Попробуй вызывать .reserve() или использовать где-то обычные СИ массивы
направление мысли правильное, только для того чтоб сделать reserve нужен небольшой препроцесс,
который при сценарии с данными для CResource может оказаться не очень простым
Если как у иннуэнды загрузка игрового объекта начинается с создания игрового объекта,
то игровой объект ищет файл конфига, грузит, парсит, вложенные объектики создаются, которые тоже свои конфиги грузят, создаются объекты gapi, это всё обмазывается кэшами вида std::map<std::string, std::weak_ptr<T>> чтобы не грузить уже загруженные конфиги.
Это всё кучи аллокаций, в том числе и для временных объектов, создания и пересоздания объектов gapi, вместо того чтоб загрузить бандл в котором все те ресурсы уже упорядочены и посчитаны.

innuendo
> > либо это прям суровый inplace loading в котором после загрузки снимка уровня
> > в
> > память остаётся только фиксап указателей, но в твоей практике таких проектов
> > точно не было.
>
> конечно не было - обожаю конзольные проекты с пол ярда зелени бюджетом и
> 100-500 программеров на каждый чих
ну так от каких цифр ты берёшь свои "80-90%" из твоей "практики"?

> > и "кашей с мапой", который я Иннуэнде объяснял тут давно, но он видимо
> > (тогда)не понял/(теперь) не помнит.
>
> тебе 10 лет назад пояснили - но так и не дошло
Я ж говорю - ты видимо (тогда)не понял/(теперь) не помнишь.
10 лет назад тебе всё разжевал, и про твоё "мапа для того чтоб хранить", и как ресурсики по конфигам в оффлайне посчитать и собрать в массивчики. Ни того, ни другого ты так и не понял и не запомнил что тебе говорили. Ещё и себе приписал, что ты там якобы вообще что-то конструктивное говорил, кроме того, как у тебя всё плохо без стл и хорошо с, без конкретики естественно как всегда.

> что ты можешь сказать кроме аллокации и бла-бла-бла? какая твоя реальная
> практика кроме корабликов?
опять пытаешься махать своим недоразумением (или как там твой ник переводится?)?
достаточно практики, явно побольше, чем у тебя.

#22
13:15, 23 мар. 2021

Xunter
> держать кэш ресурсов в std::map<std::string, std::weak_ptr<T>> чтобы не грузить
> уже загруженные для "живых" объектов ресурсы повторно.

и какое число общих ресурсов на корабликах ? 1 штука ?

#23
13:16, 23 мар. 2021

Xunter
> ну так от каких цифр ты берёшь свои "80-90%" из твоей "практики"?

я беру с проектов небольших контор - а не крутизну конзольных тайтлов

#24
13:28, 23 мар. 2021

Xunter
> и как ресурсики по конфигам в оффлайне посчитать и собрать в массивчики

расскажи как парсятся до кучи xml в корабликах

#25
13:42, 23 мар. 2021

Xunter
> так что обязательно

ты думаешь мне интересен твой ответ ? ты как ведущий программер даже не смог паки сделать, лол, а ещё про какой там препроцессинг бухтишь

#26
(Правка: 14:00) 13:59, 23 мар. 2021

innuendo
> поясни
Ну типа вот.

То ли ты будешь 1000мс головку к болванке таскать, то ли за 100мс с флешки прочитаешь - разница в 10 раз. Если при этом переодевание стд стрингов - это ещё 100мс, то это будет разница между 50% и 91%.
Вот я и спросил - мы эти 80/20 считаем относительно условных 1000мс жёсткого диска или условных 100мс твердотельного? Ибо, в зависимости от ответа, и стд стринги получаются либо "окей, это парсинг, тут ничего не поделаешь", либо "как так-то, вы там всё по шлемиэлю что ли делаете?"

#27
(Правка: 14:14) 14:06, 23 мар. 2021

Delfigamer
> То ли ты будешь 1000мс головку к болванке таскать, то ли за 100мс с флешки
> прочитаешь - разница в 10 раз. Если при этом переодевание стд стрингов - это
> ещё 100мс, то это будет разница между 50% и 91%.

понятно, я могу сравнить только с старых компов с hdd и дохлого атлона 64, либо нового с ssd и райзен :)

считай, что 80-90% было с старых компов с hdd и дохлого атлона 64 - это мой рабочий комп на проектах что были

в любом случае, расходы типа на stl ну никак не могли замедлять в РАЗЫ

#28
(Правка: 14:15) 14:09, 23 мар. 2021

Xunter
> это Иннуэндо об одном из способов реализации "ресурс-менеджера" для сценария "с
> CResource".
> держать кэш ресурсов в std::map<std::string, std::weak_ptr<T>> чтобы не грузить
> уже загруженные для "живых" объектов ресурсы повторно.
> Вот он утверждает, что "из его практики" - это хороший и быстрый (по времени
> загрузки) способ, но подтвердить тут он эту свою практику реальными цифрами не
> сможет.
Сколько ключей в мапе и сколько символов в строке? Вон, самый тупой алгоритм раскидал 10000 строк длиной под 4000 символов менее, чем за полторы секунды. Это слишком медленно? Нужно уметь управляться с ещё более длинными строками?

Xunter
> Это всё кучи аллокаций, в том числе и для временных объектов, создания и
> пересоздания объектов gapi, вместо того чтоб загрузить бандл в котором все те
> ресурсы уже упорядочены и посчитаны.
Да ладно, у тебя пока сисколл ReadFile раздиспатчится, можно будет раз 50 в локальную кучу аллокаций наложить.

Xunter
> вместо того чтоб загрузить бандл в котором все те ресурсы уже упорядочены и
> посчитаны
Не знаю, какие требования были конкретно у вас, но знаю, что вообще сами по себе бандлы не переносятся между версиями, так что как минимум в некоторых случаях они в принципе не подходят.

#29
(Правка: 14:19) 14:16, 23 мар. 2021

Delfigamer
> Это слишком медленно? Нужно уметь управляться с ещё более длинными строками?

ну под Win для ключей ресурсов можно и MAX_PATH, с локализациями сложнее

Delfigamer
> Не знаю, какие требования были конкретно у вас, но знаю, что вообще сами по
> себе бандлы не переносятся между версиями

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

Страницы: 1 2 3 428 Следующая »
ФлеймФорумПрограммирование