• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
3
Question by Chesley · Aug 26, 2012 at 07:42 PM · sceneloadingcpu

Loading.ReadObject CPU Spike

when load a scene of my game, after a few seconds of loading, i noticed a HUGE spike in CPU usage cause by "Loading.ReadObject".

is there a way to read all object in the scene on the start? and receiving a message or something when all objects have been read?

than i can add that part to the loading screen.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by bmackenzie · Nov 24, 2013 at 12:49 AM

Old thread but I see the same thing on 4.3. I'm pretty sure this is the reason for my game crashes on Android. The process consumes ~732ms. What could possible take that long to read in the simple game? I'm not sure, but a little more documentation on this would be awesome!

Taking a look at the profiler I see that the call is question is a subroutine of "Application.LoadLevelAsync Integrate". So looking a look at my level loading, I was using the simple "levelLoad" function. I changed that to the following and have since eliminated the crashes! Now this has not address the lengthy function call, but the fact that it's no asynchronous hides this, since it's processed on a background thread.

So make the below call to start loading the level:

 StartCoroutine("LoadLevelAsynchronously");

Then the "LoadLevelAsynchronously" loads the level, but waits until is completely loaded before displaying:

 IEnumerator LoadLevelAsynchronously()
 {
     AsyncOperation async = Application.LoadLevelAsync("Dev");
     if (Application.isLoadingLevel) 
     {    
         Debug.Log ("Loading complete");
         yield return async;
     }
 }

 
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by yanhui · May 25, 2016 at 03:31 PM

I met the same cpu spike about Loading.ReadObject in profiler today. My situation is to call AssetBundle.Load(string), it only cause the hipcup on Android device,and i will call Resources.UnloadUnusedAssets() after the asset is not needed.

My solution is load all the frequent assets on the start and reference them,you don't need change your code about load assets,because assetbundle load the assets from it's catche,and Resources.UnloadUnusedAssets() will not release the assets you reference.

I think ,IO of some android device is not better than ios device.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

10 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

A node in a childnode? 1 Answer

Save data from one scene to another? 0 Answers

Opacity from 3ds max doesn't show up 2 Answers

heavy scene loading 1 Answer

pre-load multiple scenes but only activate one 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges