Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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
1
Question by femi · Feb 03, 2011 at 02:07 PM · optimizationproceduralgarbage-collection

Does writing to Mesh arrays cause allocation?

I'm trying to optimize scripts which generate meshes procedurally at run time. I'm concidering making a pool of game objects with meshes that are never destroyed but deactivated / reused / reactivated. I'm already reusing arrays with generated vertices / colors / uv / ... and I never read Mesh.vertices etc only write to them. The sizes of arrays never change, but I am wondering: when I write to these arrays does it trigger memory / GPU resources (re)allocations (or anything else that could cause a drop in performance).

Comment
Add comment · Show 3
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 Jesse Anders · Feb 03, 2011 at 02:58 PM 0
Share

I've also wondered about the details of how mesh data is handled under the hood. I think I remember reading somewhere that if the assigned vertex array is of the same size as the mesh's current vertex array, no buffer reallocation will occur - the new data will just overwrite the previous data in the buffer. (Which makes sense of course.) I'm not sure where I read this though, and it would be nice to know for sure that repeatedly overwriting the vertices of a mesh won't incur costs other than that of transferring the data itself. ($$anonymous$$aybe someone else can provide some info on this.)

avatar image femi · Feb 03, 2011 at 03:52 PM 0
Share

FWIW: I have implemented the pool and it seems to have solved my performance deterioration problem. So just writing to those arrays seems to be harmless enough.

avatar image Wahooney · May 07, 2011 at 08:47 AM 0
Share

I find that the GC bottleneck occurs when reading the data out of a mesh (Vector3[] verts = mesh.vertices;), if I pool my vertex data for instance, I get a massive boost in performance, but that means you have to store the same data twice, which is a pain.

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

No one has followed this question yet.

Related Questions

How do I efficiently maintain a constantly-changing list without triggering GC? 2 Answers

SendMouseEvents - GC Collect Spike Issue 1 Answer

Display numbers in UI.Text Garbage Free? 2 Answers

Unity Procedural Game Optimization 3 Answers

Questions About Allocations - Arrays - Structs and so on 1 Answer


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