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
2
Question by Ghopper21 · Dec 20, 2012 at 04:25 AM · performancewindowsmacdebuglog

Why is Debug.Log so much slower on Windows than Mac?

Debug.Log is runs 4-5 times slower on my 64-bit Windows 7 machine than on my Macbook Air, even though everything else runs faster, as expected given the Windows machine has a faster processor. It's ultimately not a big deal, though it does mean you can't reliably use Debug.Log to print out timestamps for quickie performance tuning at a fine-grained level.

My question is partly out of curiosity, partly in case this gives insight into any other performance gotchas with Windows versus Mac with Unity -- why is Debug.Log slower on Windows than Mac?

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

3 Replies

· Add your reply
  • Sort: 
avatar image
3

Answer by Alec Thilenius · Dec 20, 2012 at 04:40 AM

Printing is slow, as a rule of thumb. Unless one of the Unity programmers gets on here you may not get a satisfying answer as to why its actually slower. I dont know how the console is implemented. My guess why its slower has to do with OS specific stuff, just like std::cout or Console.WriteLine()

If you want to take snapshots with a LOT of prints, just cache them in memory. Create a 'logger' class, and have all MyLoggerClass.Log("...") just add the string to a Queue. Print the Queue to console after X seconds, or based on some other trigger.

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
1

Answer by MountDoomTeam · Mar 05, 2013 at 07:55 PM

it's bad programming from Unity. It is all withheld within the unity program, the printing function should simply add strings and values into arrays during runtime and put them on the console at the end of the frame.

if making an array of 10,000 strings can take a matter of minutes, there is an error somewhere in the unity program.

I think they should Make printing speedy because it's a very useful for people learning and just for code monitoring.

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
1

Answer by IVxIV · Jan 27, 2014 at 09:41 AM

This was a big issue for our project as well (if you think Windows is bad, it's literally hundreds of times slower on mobile), so I wrote a replacement to the UnityEngine.Debug class which provides MUCH faster performance. I also wrote a number of other C# Unity debugging tools as well and have packaged them up into a Unity plugin. Check it out if you're interested, it's the ProDebug plugin.

Happy debugging

Comment
Add comment · Show 1 · 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 frogsbo · Jan 27, 2014 at 09:46 AM 0
Share

That sounds fantastic, Unity should buy it from you and install it as standard.

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

12 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 avatar image avatar image

Related Questions

Debug.Log() in build 9 Answers

Framerate differences between Windows and Mac 2 Answers

"Out of Memory" on Windows Build, Runs perfectly on Mac Build 1 Answer

Mac VS Windows Builds 3 Answers

Mesh vertex count differs on Mac/Windows 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