Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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
0
Question by Michael_Krueger · May 11, 2016 at 02:13 PM · debugmemory managementreferences

How to find 'unreleased' references programmatically and prevent not enough memory crashes?

Right now I'm stuck in the middle of project, because we have a huge issue with instance references not being 'freed', thus these instances are not collected by the GC and the memory keeps being allocated, which results in a memory crash sooner or later.

I read a lot regarding these issues but sooner or later I seem to run into one of those two walls:

  1. windbg ans SOS.dll are fine tools but they don't work properly with Unity

  2. the Unity memory profiler is not sufficient for the task

I did some research and analysis on our code and I think I identified the objects in question (which are non MonoBehaviours by the way). Now I 'just' need to get the objects referencing these instances.

It is not really an option for me to go through the code and check all references 'by hand'. The code isn't well structured and it would be very tedious to check everything and quite error prone (not impossible though, but I'd like to avoid that).

Maybe there is a way using AOP (Mono.Cecile should work with Unity) to achieve this goal? I haven't had to much with aspect oriented programming so I'm not sure if this would be of any help.

I checked with the 'new' memory profiler for 5.3.x, but same as the default detailed memory profiler view, it doesn't show the instances in question, neither the memory loss is displayed (on the other hand, the simple memory profiler shows the memory loss just fine).

I'm running out of ideas here. Anybody experienced similar problems in their Unity apps and found a way to keep track of references without huge modifications to the code base?

What's the best practice for these kind of errors anyway? Sure, try to avoid it all together, but what to do if you're already in trouble and the code base is too big to check manually?

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

0 Replies

· Add your reply
  • Sort: 

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.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How can I track disassembly code back to a script? 0 Answers

Filing and debuging web plugin crashes 1 Answer

"It is not possible to invoke an expression of type 'boolean'" in switching cameras 1 Answer

Turn off blue mesh lines 2 Answers

Debug Wrapper Class 6 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