• 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
1
Question by Bleedi · Jun 29, 2011 at 08:51 AM · scenelagmemorychangeleak

Laggy gameplay and occasional crashes

This problem revealed itself all of a sudden. When we switch scenes from scene A to scene B, the scene B gets really laggy. FPS is around 50, but about every second or so it sinks down to near-zero. Profiler doesn't show anything when these peaks happen since the profiler doesn't keep tracking when this lag occurs, it kinda "skips" the lag part.

I've tried to print out the object counts using both Resources.FindObjectsOfTypeAll() and Object.FindObjectsOfType() functions, and there is no changes in the object / component amounts. I've checked the code and there is little to no arrays in use, and when they are, they are released as expected.

After spending about 30 seconds or so in the laggy scene, I get a GC fatal error saying "too many heap sections". It relates to garbage collection, which in turn relates to memory leaking. It's funny though that if I start the game directly to the laggy scene, it doesn't lag at all, only if I change the scene to it.

Comment
Add comment · Show 19
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 Marnix · Jun 29, 2011 at 08:54 AM 0
Share

Do you destroy the old scene?

avatar image Bleedi · Jun 29, 2011 at 10:09 AM 0
Share

Yes ofc, but there is a couple of objects (game character, networking script etc.) that stay between scene changes (DontDestroyOnLoad()).

avatar image Marnix · Jun 29, 2011 at 10:11 AM 0
Share

And what happens if you go from scene 2 to scene 1?

avatar image Bleedi · Jun 29, 2011 at 10:20 AM 0
Share

It works nicely in scene 1. I'm starting to think it's our network library (Badumna) which causes the lagginess, but I'm still not sure. How should I try to find out if it's Badumna or something of our own code?

avatar image demize2010 · Jun 29, 2011 at 10:38 AM 0
Share

Isolate and disable any DonDestroy objects one by one to find out what is causing you the headaches.

avatar image Bleedi · Jun 29, 2011 at 10:45 AM 0
Share

There's two DontDestroy-objects that cannot be disabled, our player and the networking script. Disabling either will cause tons of null references 'cause they're referenced in tens of places.

avatar image Marnix · Jun 29, 2011 at 10:51 AM 0
Share

Is there any possibility to play your game without networking?

avatar image Bleedi · Jun 29, 2011 at 10:58 AM 0
Share

Nope, it's $$anonymous$$$$anonymous$$O game and everything is built around Badumna. Any single scene can be detached and played without networking, but the problem doesn't occur then. There's lots of stuff going on between Badumna, other networking-related objects, player objects and scenes, and as such I don't think the problem is related to the scene-specific components.

avatar image Marnix · Jun 29, 2011 at 11:01 AM 0
Share

But if you only have problems with 1 --> 2 and not with 2 --> 1, there is some code that is specific for your scene that seems to be leaking, right?

avatar image Bleedi · Jun 29, 2011 at 11:09 AM 0
Share

Well, this is the tricky part, I don't know what happens in Badumna in this situation. I've tried disabling every single thing in Scene 2, but the problem persists. It sounds to me that it's really related to the scene change, and it somehow sticks through the whole scene.

avatar image demize2010 · Jun 29, 2011 at 11:18 AM 0
Share

$$anonymous$$y gut feeling would be that this is down to Badumna, I'd remove calls to it to try and find whats doing it. Out of interest, your gamecontroller isn't loading a new version of Badumna in the new scene (so doubling up) is it?

avatar image Marnix · Jun 29, 2011 at 11:19 AM 0
Share

@Bleedi: It is good practice to have Unit Tests that will help you test such situations. A game should always be able to run without networking.

avatar image Bleedi · Jun 29, 2011 at 11:20 AM 0
Share

Nope. We have about 50-60 scenes, and this only happens in this one scene pair. The only difference with this scene B is that we change the player avatar on the scene change. It has worked nicely before, but it somehow "blew up" yesterday. I haven't been able to find the reason or anything I could've done yesterday to make this happen.

avatar image Marnix · Jun 29, 2011 at 11:25 AM 0
Share

If that is the ONLY difference, check your changelog in SVN and see who made the changes yesterday. Go back to an old revision and check if it is ok there.

avatar image Bleedi · Jun 29, 2011 at 11:56 AM 0
Share

The latest version in our depo is working, it's my own working copy that's bugging (won't commit buggy/laggy stuff :p). At the moment I'm going through all the working copies and checking diffs, but so far, there hasn't been anything that could've done it.

avatar image Marnix · Jun 29, 2011 at 11:58 AM 0
Share

@Bleedi

  1. Did you check your new code on another computer?

  2. What happens if you revert your new code to the older one? (Create a new checkout in a new folder)

avatar image Bleedi · Jun 29, 2011 at 12:08 PM 0
Share

I didn't try the new code on another computer, but I made stand-alone and web builds and the problem occurs on those too.

I tried creating a checkout with older rev, and it works nicely. It's the newly made code which causes it (somehow), I just can't find anything that could actually cause it. Everything I've checked so far is in line with the old code, the new code just sends some new data to Badumna's networking scripts, in similar fashion as all the old code does. Everything possible is claused between try-catch, and no exceptions are thrown at any given time. Execution runtime snippets give excess values only on Badumna's internal function calls (when I call a function inside the Badumna DLL).

avatar image Marnix · Jun 29, 2011 at 12:17 PM 0
Share

Did you run the web builds on other computers as well?

Try to isolate which part of your code is causing this trouble. It $$anonymous$$UST be in your new code. $$anonymous$$aybe it's the total data traffic in some way.

avatar image Bleedi · Jun 30, 2011 at 05:04 AM 0
Share

No, I didn't run the web builds on other computers.

I'll be isolating the code part at a time and try to find what causes the problem. I guess it should be something in the networking code of our own part which handles the scene / avatar changes. I really can't think of anything else.

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Unamine · Jun 29, 2011 at 11:08 AM

Go disabling or removing objects, including how you said the player and the network to discover what causes the lag, can also be an assembly error in the script loops or doing anything that really overload the system, make sure there are many objects or some models with MANY polygons in the scene.

Also try increasing your virtual memory, here I had NBA 2K11 is was too much lag, increased my virtual memory and ran smooth.

I hope I helped ^^

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

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Memory leak when changing material 0 Answers

Updating main menu using PlayerPrefs when collecting an object in different scene (level) 1 Answer

Why does Unity's memory usage increase continuously while the profiler reports static usage? 0 Answers

Scene Change Event 1 Answer

Object created in CustomEditor is leaked into scene when play is pressed. 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges