x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

Solved: Unreal Engine Huge Performance Bottleneck

I am attempting to Optimize Unreal Engine for Linux using OProfile and I think I found out some performance bottleneck, Unreal Engine statistically consumes about 70-80% of its time dealing with ld-*.so!

At first I have assumed that it must be because ld-*so is busy searching, loading and linking library files to Unreal Engine and busy saving critical codes to RAM, thus this bottleneck must just happen at the beginning of the program launching. So I went to run it for a longer time, but to my surprise, the communication between Unreal Engine and ld-*so even grew to almost 80%! Linking must not have been efficient or information from RAM might not have been read well by Unreal Engine, I still dont know yet.

I believe Unreal Engine should not be consuming 70-80% dealing with ld-*.so, maybe 10-20% is ok, but more than half of the time is already too much. How do we fix it?

Product Version: UE 4.13 Preview
Tags:
more ▼

asked Aug 31 '16 at 06:56 AM in Linux

avatar image

James Guana
36 4 9

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

2 answers: sort voted first
more ▼

answered Sep 09 '16 at 07:00 AM

avatar image

Slonopotamus
195 7 12 15

avatar image James Guana Sep 12 '16 at 07:35 PM

Hi, thats promissing! I will profile again and be back with the result

avatar image Slonopotamus Sep 15 '16 at 09:51 PM

After a long and painful games with linker, I shaved off more 1-2s from Linux editor startup: https://github.com/EpicGames/UnrealEngine/pull/2793

That results in 4.3s to start up editor with an empty project (no code, no content) on i7 4770 for me. This is still slower than Windows on same box (2.5s), so there's more room for profiling and optimizations.

avatar image James Guana Sep 27 '16 at 05:42 AM

I can confirm that this have resolve the Issue, applied patch was from https://github.com/EpicGames/UnrealEngine/pull/2793 by Slonapotamus.

From 70-80% down to 0.118%! Great Job!

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

I am assuming you are using perf, since oprofile is no more... Could you please share the commandline you are using and what you are doing in the engine. It looks like you are profiling the editor startup?

more ▼

answered Aug 31 '16 at 02:52 PM

avatar image

RCL STAFF
2.7k 59 6 88

avatar image James Guana Aug 31 '16 at 06:21 PM

That was what I think at first. So I let the program run for quite some time, ld-*.so access cycle should then fall while I do other stuffs in the engine, But to my suprise, it even went higher upto 80% access time.

The ff are the commandline, pardon the typo

opcontrol --no-vmlinux

opcontrol --reset

opcontrol --setup

opcontrol --start

./UE4Editor

opcontrol --dump

opcontrol --stop

opcontrol -h

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question