🤖
LifeEXE
Udemy курс UE / C++ PatreonBoostyTelegramYouTube
  • 🤍Welcome
  • 💡Мои курсы
    • 🎮Unreal Engine — полное руководство по разработке на С++
    • 🧪Автоматизация и тестирование в Unreal Engine
    • 🐍Snake game
    • 🔊Metasounds
    • 🏗️Design patterns
    • 🕹️Game Engine hardCORE series
    • 🧠OpenAI
  • 🔗Сообщество
    • Ресуры
    • Поддержать проект
    • Проекты участников сообщества
    • Code review участников сообщества
  • 📚Образовательные ресурсы
    • Книги
      • C++
      • ООП
      • Чистый код
      • Компьютерная графика
      • Алгоритмы и структуры данных
      • Дизайн и проектирование
      • Виртуальная реальность
      • Процедурная графика
      • Функциональное программирование
      • Менеджмент проектов
      • Фундаментальное
      • Тестирование
      • Разное
    • Online
      • Unreal Engine
      • C++
      • Компьютерная графика
      • Чистый код
      • AI
      • Разное
    • Статьи
      • Code / C++
  • 👨‍💻Software
    • IDE
      • VS hotkeys
    • Unreal Engine
    • GIT
    • CI/CD
    • Tools
      • С++
      • Компьютерная графика
      • UI / UX
      • Animations
      • GameDev
      • Unreal Engine
      • Creative coding
      • Sound
      • Документация
      • Статический анализ кода
      • Тестирование
      • Автоматизация
      • Network
      • CV / ML
      • Profiling
      • Fonts
      • UML / diagrams
      • Разное
    • Free assets
  • 💾Code
    • Code style
      • .clang-format
      • .gitignore
      • UE code style
      • Code style проектов LifeEXE
    • C++
      • Const correctness
      • Использование auto
      • Lambda выражения
      • Forward declaration
      • Measure execution time
      • Immediately Invoked Lambda Expression (IILE)
    • Unreal Engine
      • Медленный ли Cast
      • UE_LOGFMT
  • ⁉️FAQ
    • Часто задаваемые вопросы
Powered by GitBook
On this page

Was this helpful?

  1. Code
  2. Unreal Engine

Медленный ли Cast

PreviousUnreal EngineNextUE_LOGFMT

Last updated 2 years ago

Was this helpful?

Я слышал, что касты работают медленно и нельзя их использовать так ли это?

1. Cast не самое первое о чем бы я переживал по поводу оптимизации (хотя если у вас на Tick происходит Cast в цикле 1000 акторов, стоит задуматься сразу)

2. Если можно написать код не используя Cast - надо это делать.

3. В Unreal Engine не получится совсем обойтись без Cast. Многие функции фреймворка возвращают указатели на базовые классы поэтому, чтобы получить специфическую функциональность наших классов, придется делать Cast.

4. Один из методов как можно оптимизировать: в функциях инициализации классов или BeginPlay сделать касты один раз и записать всё в указатели (если это имеет смысл). В нашем проекте это можно сделать в некоторых компонентах, где мы, например, используем GetOwner (также это можно сделать с помощью умных указателей, про них можно почитать по ).

5. Если реальные проблемы возникают и есть подозрения, что узкое место - это касты, то нужно профайлером замерять, искать причину.

6. Дополнительно можно почитать:

а).

Глава про касты №27. Это по чистому C++, но все равно полезно. Цитата:

Good C++ uses very few casts, but it’s generally not practical to get rid of all of them.

б).

💾
ссылке
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ | Майерс Скотт
Статья про то, как работает Cast в Unreal Engine