1) Надо попробовать успеть до того как "игра вылетит" собрать некоторые сведенья из ProcessMonitor. Что там видно? Какие показатели зашкаливают.
2) Если разработка идет на DirectX API, то возможно там есть какие-то средства профилирования
памяти. Сколько выделено? Что там лежит? Текстуры? Почему они не убираются например когда
не нужны?
historydev, никаких ТГ. Это публичное место где обсуждают технические вопросы.
Если у тебя NDA или какая-то бизнес тайна - то это все мимо кассы сам понимаешь.
historydev, смоделируй полет всех объектов без дерева.
У тебя при этом будет расчет гравитации для всех со всеми. Тоесть для 100 объектов
будет 10 000 взаимодействий. При этом надо придумать границу отсутствия взаимодействия.
И потом сделай модель такого-же мира но с квадра-деревом. Если правильно выбрана эта
граница то расчет будет более быстрый. Дерево отбросит ненужные взаимодействия
и будет не 10 тыщ а меньше.
Adamos, я не говорил - два раза. Я просто акцентировал на том что
при данной постановке С++ будет лишним затруднением в разработке.
Да и ошибок с памятью всегда есть шанс наделать больше в С++
приложении.
Идея портировать С++ на мобилки - это в принципе плохая идея.
Главное преимущество С++ - выскокая скорость на нагрузках - для UI
приложения не имеет никакого значения. И UI выгоднее писать на
- Android/Kotlin
- IOS/Swift
Поскольку ты - писатель на С++. То у тебя есть коробочные инструменты - профилировщики.
Они показывают обычно 1-2 функции в коде, которые создают являются CPU consumers.
Делай профилирование и приходи с фрагментом проблемного кода.
Твоя постановка - нагрузить CPU - это полная чепуха. Представь что ты своему водителю
поставил задачу "жечь побольше бензина". Это примерно такого же уровня полезности совет.
Навскидку можно сказать что у тебя (предположительно!) идет неэффективное использование кешей памяти. Но
я не хочу быть гадалкой. Надо смотреть код.
Тоесть заменить например a на y как принято в математике.
Потом придумать правильный подход к тестированию. Вот ты написала какой-то код.
Как мы проверим что он вообще правильный? Как проверить что определенный интеграл
правильный?
Нужны какие-то простейшие модульные тесты на константах которые точно правильные.
Суть подготовки в том что ты берешь олимпиадные задачи и каждый день (в СБ и ВС) с утра начинаешь
решать. Как спорстмен. У тебя - режим жизни. И в будни и в выходные.
Сначала долго. Потом быстрее и быстрее. Решение этих задач это навык. И он приобретается.
Там - обычное программирование и оно использует достаточно простые алгоритмы и структуры
данных. Но оно содержит в условиях
- ограничения (например все числа от 0 до 99999)
- время работы алгоримта не должно превышать допустим 30 секунд.
- обычно условие содержит пример в виде
Input:
Output:
И в условии всегда есть некая подсказка чтоб упростить решение. Очень часто может
применяться динамическое программирование и рекурсия. Но в этом нет никакой
олимпиадной магии. Это и есть ОБЫЧНОЕ программирование.
Просто есть лимит времени.
И код - обычно говнокод. Нет тестов. Нет рефакторинга. Нет генериков. Ты пишешь
бегом-бегом как на хакатоне. Все пишешь сплошной main функецией. Как бог даст.
91744 Oct 9 08:59 00111.raw*
92512 Oct 9 08:59 00111.raw.bz2*
Размер файла практически не изменился. Хорошая энтропия. Все это говорит нам о
современном аудио кодеке. Может mp3, aac, ogg без шапки.
Если - бы это был PCM (wave) то архиватор смог бы слегка приуменьшить размер.
Утилиты типа file, binwalk тоже не смогли вывести сигнатуру и не смогли найти внутри
известных чанков.
В содержании часто встречается байт 0x88, поищите такой-же в популярных аудио
форматах. Если он есть например в mp3 то возможно это и есть mp3 без заголовка.
1) Надо попробовать успеть до того как "игра вылетит" собрать некоторые сведенья из ProcessMonitor. Что там видно? Какие показатели зашкаливают.
2) Если разработка идет на DirectX API, то возможно там есть какие-то средства профилирования
памяти. Сколько выделено? Что там лежит? Текстуры? Почему они не убираются например когда
не нужны?