UDN
Search public documentation:
PerformanceAndMemory
日本語訳
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 Home > Technical & Programming Home > Performance and Memory
Performance and Memory
- Performance and Memory
- Overview
- Keeping Your Game Working
- General Optimization
- Memory
- Always Loaded Content
- Analyze Referenced Content
- Content Comparison Commandlet
- Hot Spot Reporting in Levels
- DVD Footprint
- Executable Size
- Find Duplicate Textures Commandlet
- Histograms For Content
- Per Poly Collision
- Level Optimization
- MemLeakCheck
- Memory Profiler
- Pools That Grow
- TArray Slack
- Texture Pool
- Unused Animations
- GameThread
- AI Logging
- Animation
- Cleaning Up Issues Highlighted By Log Messages
- Dynamic Light Environment Updating
- Garbage Collection
- Good Use of #if FINAL_RELEASE /`if(`notdefined(FINAL_RELEASE))
- LineChecks
- Loading Performance
- LOOKING_FOR_PERF_ISSUES
- Pools In The Engine
- NavMesh Performance
- Move Actor
- Particles
- Per Frame Expensive Updates
- Physics
- Profiling GameThread
- Skeletal Mesh Component Updates
- Slow UnrealScript Function Calls
- Spawning Anything Is Slow
- TickableActors List For Objects That Are Event Based
- Useful Exec Commands
- RenderThread
- GPU
- Network Bandwidth
Overview
Making a game that both runs well and fits withing memory constraints is an exciting problem that touches upon many systems and many disciplines. This page is your gateway into a large number of tools and techniques in which to help you win the battle. Even with the best tools in the world, you still need to instill the mindset of making certain that people are using the minimal amount of data / cpu cycles to create what they want. The tools and techniques listed here will help you do exactly that. To do that we break the large problem into a number of sub problems to allow us to focus on each area in as much of an orthogonal way as possible. This allows multiple people to work/scale independently. Each section has an overview and then all of the tools/techniques that are applicable to that section. for each tool/technique we give a brief reason why you want to utilize that tool / technique. This page is meant to give you a quick overview and point you to a more comprehensive too/technique page that will have all of the details on how to utilize that specific tool/technique.Keeping Your Game Working
Keeping your game running is a balancing act between constantly adding new content and features VERSUS fitting within your budgets. When adding new content, often it will be added with incorrect settings or will be more expensive compared to existing content. Usually these mistakes are just innocent oversight. But with the amount of content games are utilizing these days it is hard to track. The following tools/techniques will help you maintain a working game:Continuous Integration
Find out about build breaks due to bad checkins as soon as possible.Content Audit Commandlet
Finds "questionable" content that should be looked at and probably fixed.Daily Automated Smoke Tests
Catches rarely executed code crashes / issues.Daily Play Tests
Makes certain that the game is always playable and people are not just looking at features in an isolated test level.Daily QA Performance/Memory Metrics
Allows for easy catching of performance / memory regressions.Fix Up Redirects Commandlet
Makes certain that there are no redirectors causing content to be loaded when it should not be.Sentinel
Automated system which will gathers performance and memory stats on specified levels.Set Texture LOD Group Commandlet
Makes certain that textures are in the correct LOD group and fixes incorrect texture settings.General Optimization
For all of the optimizations you need to do for your game here the following techniques are universally good to apply when working. This page Performance Debugging also has information about tracking down performance problems, bottlenecks and hitches.Just Turn It Off
Instead of spending hours optimizing something, sometimes it is better to just turn it off!Looking At A Wall
Look at a wall and see what is still spending costly cpu cycles when it is not being rendered.Spawning N Of A Type To Exaggerate
Having N of the same type of object really shows what parts are slow without getting drowned by the rest of the engine's functions.Hitches
Here are a few STAT commands that are useful for quickly check hitchy things at run-time - typically line checks and path finding. Look at the Max values to spot hitchy frames.- STAT UNITMAX - Use instead of STAT UNIT, in order to catch hitches better.
- STAT COLLISION - Look at "Multi Line Check" and "Single Line Check".
- STAT NAVMESH - Look at "Generate Path".
- STAT SLOW - Shows all stats that are slower than 10 ms. It seems that you have to type STAT NONE to turn it off.