{"id":4794,"date":"2018-08-07T23:56:34","date_gmt":"2018-08-07T15:56:34","guid":{"rendered":"https:\/\/unitycoder.com\/blog\/?p=4794"},"modified":"2018-08-07T23:56:34","modified_gmt":"2018-08-07T15:56:34","slug":"faster-debug-log","status":"publish","type":"post","link":"https:\/\/unitycoder.com\/blog\/2018\/08\/07\/faster-debug-log\/","title":{"rendered":"Faster Debug.Log"},"content":{"rendered":"<p><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"4795\" data-permalink=\"https:\/\/unitycoder.com\/blog\/2018\/08\/07\/faster-debug-log\/faster-debug-log\/\" data-orig-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2018\/08\/faster-debug-log.gif?fit=550%2C259&amp;ssl=1\" data-orig-size=\"550,259\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"faster-debug-log\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2018\/08\/faster-debug-log.gif?fit=300%2C141&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2018\/08\/faster-debug-log.gif?fit=550%2C259&amp;ssl=1\" class=\"alignnone size-full wp-image-4795\" src=\"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2018\/08\/faster-debug-log.gif?resize=550%2C259&#038;ssl=1\" alt=\"\" width=\"550\" height=\"259\" \/><\/p>\n<p>Debug.Log() slows down your editor or even hangs if it happens to run inside some long loop,<br \/>\nbut you can make it faster by disabling stacktrace from Debug.Log()! <em>(see image above)<\/em><\/p>\n<p>Tested for-loop with 100000 iterations in editor (Unity 2018.1.6f1)<br \/>\n&#8211; 25000ms with stacktrace enabled<br \/>\n&#8211; 2200ms with stacktrace disabled<\/p>\n<hr \/>\n<p>code used for measuring:<\/p>\n<style>.gist table { margin-bottom: 0; }<\/style>\n<div style=\"tab-size: 8\" id=\"gist91201343\" class=\"gist\">\n<div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n<div class=\"gist-data\">\n<div class=\"js-gist-file-update-container js-task-list-container\">\n<div id=\"file-logspamtest-cs\" class=\"file my-2\">\n<div itemprop=\"text\"\n      class=\"Box-body p-0 blob-wrapper data type-c  \"\n      style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n      aria-label=\"LogSpamTest.cs content, created by unitycoder on 03:44PM on August 07, 2018.\"\n    ><\/p>\n<div class=\"js-check-hidden-unicode js-blob-code-container blob-code-content\">\n<p>  <template class=\"js-file-alert-template\"><\/p>\n<div data-view-component=\"true\" class=\"flash flash-warn flash-full d-flex flex-items-center\">\n  <svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n    <span><br \/>\n      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.<br \/>\n      <a class=\"Link--inTextBlock\" href=\"https:\/\/github.co\/hiddenchars\" target=\"_blank\">Learn more about bidirectional Unicode characters<\/a><br \/>\n    <\/span><\/p>\n<div data-view-component=\"true\" class=\"flash-action\">        <a href=\"{{ revealButtonHref }}\" data-view-component=\"true\" class=\"btn-sm btn\">    Show hidden characters<br \/>\n<\/a>\n<\/div>\n<\/div>\n<p><\/template><br \/>\n<template class=\"js-line-alert-template\"><br \/>\n  <span aria-label=\"This line has hidden Unicode characters\" data-view-component=\"true\" class=\"line-alert tooltipped tooltipped-e\"><br \/>\n    <svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" data-view-component=\"true\" class=\"octicon octicon-alert\">\n    <path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"><\/path>\n<\/svg><br \/>\n<\/span><\/template><\/p>\n<table data-hpc class=\"highlight tab-size js-file-line-container\" data-tab-size=\"4\" data-paste-markdown-skip data-tagsearch-path=\"LogSpamTest.cs\">\n<tr>\n<td id=\"file-logspamtest-cs-L1\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"1\"><\/td>\n<td id=\"file-logspamtest-cs-LC1\" class=\"blob-code blob-code-inner js-file-line\">\/\/ measure debug.log with large loop<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L2\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"2\"><\/td>\n<td id=\"file-logspamtest-cs-LC2\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L3\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"3\"><\/td>\n<td id=\"file-logspamtest-cs-LC3\" class=\"blob-code blob-code-inner js-file-line\">using UnityEngine;<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L4\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"4\"><\/td>\n<td id=\"file-logspamtest-cs-LC4\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L5\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"5\"><\/td>\n<td id=\"file-logspamtest-cs-LC5\" class=\"blob-code blob-code-inner js-file-line\">public class LogSpamTest : MonoBehaviour<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L6\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"6\"><\/td>\n<td id=\"file-logspamtest-cs-LC6\" class=\"blob-code blob-code-inner js-file-line\">{<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L7\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"7\"><\/td>\n<td id=\"file-logspamtest-cs-LC7\" class=\"blob-code blob-code-inner js-file-line\">    void Start()<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L8\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"8\"><\/td>\n<td id=\"file-logspamtest-cs-LC8\" class=\"blob-code blob-code-inner js-file-line\">    {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L9\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"9\"><\/td>\n<td id=\"file-logspamtest-cs-LC9\" class=\"blob-code blob-code-inner js-file-line\">        var stopwatch = new System.Diagnostics.Stopwatch();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L10\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"10\"><\/td>\n<td id=\"file-logspamtest-cs-LC10\" class=\"blob-code blob-code-inner js-file-line\">        stopwatch.Start();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L11\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"11\"><\/td>\n<td id=\"file-logspamtest-cs-LC11\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L12\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"12\"><\/td>\n<td id=\"file-logspamtest-cs-LC12\" class=\"blob-code blob-code-inner js-file-line\">        for (int i = 0; i &lt; 100000; i++)<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L13\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"13\"><\/td>\n<td id=\"file-logspamtest-cs-LC13\" class=\"blob-code blob-code-inner js-file-line\">        {<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L14\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"14\"><\/td>\n<td id=\"file-logspamtest-cs-LC14\" class=\"blob-code blob-code-inner js-file-line\">            Debug.Log(i);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L15\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"15\"><\/td>\n<td id=\"file-logspamtest-cs-LC15\" class=\"blob-code blob-code-inner js-file-line\">        }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L16\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"16\"><\/td>\n<td id=\"file-logspamtest-cs-LC16\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L17\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"17\"><\/td>\n<td id=\"file-logspamtest-cs-LC17\" class=\"blob-code blob-code-inner js-file-line\">        stopwatch.Stop();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L18\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"18\"><\/td>\n<td id=\"file-logspamtest-cs-LC18\" class=\"blob-code blob-code-inner js-file-line\">        Debug.Log(&quot;Timer: &quot; + stopwatch.ElapsedMilliseconds);<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L19\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"19\"><\/td>\n<td id=\"file-logspamtest-cs-LC19\" class=\"blob-code blob-code-inner js-file-line\">        stopwatch.Reset();<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L20\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"20\"><\/td>\n<td id=\"file-logspamtest-cs-LC20\" class=\"blob-code blob-code-inner js-file-line\">\n<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L21\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"21\"><\/td>\n<td id=\"file-logspamtest-cs-LC21\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ with stacktrace    = 25000 ms<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L22\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"22\"><\/td>\n<td id=\"file-logspamtest-cs-LC22\" class=\"blob-code blob-code-inner js-file-line\">        \/\/ without stacktrace =  2200 ms<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L23\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"23\"><\/td>\n<td id=\"file-logspamtest-cs-LC23\" class=\"blob-code blob-code-inner js-file-line\">    }<\/td>\n<\/tr>\n<tr>\n<td id=\"file-logspamtest-cs-L24\" class=\"blob-num js-line-number js-blob-rnum\" data-line-number=\"24\"><\/td>\n<td id=\"file-logspamtest-cs-LC24\" class=\"blob-code blob-code-inner js-file-line\">}<\/td>\n<\/tr>\n<\/table>\n<\/div><\/div>\n<\/p><\/div>\n<\/div><\/div>\n<div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/d2d537b70341a897f9b301d5e5181d34\/raw\/9fe15050e35f127078bd8565a87a7ebad96135c4\/LogSpamTest.cs\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a><br \/>\n        <a href=\"https:\/\/gist.github.com\/unitycoder\/d2d537b70341a897f9b301d5e5181d34#file-logspamtest-cs\" class=\"Link--inTextBlock\"><br \/>\n          LogSpamTest.cs<br \/>\n        <\/a><br \/>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n<\/p><\/div>\n<\/div>\n<hr \/>\n<p><strong>References<\/strong><\/p>\n<p>&#8211; <a href=\"https:\/\/docs.unity3d.com\/Manual\/Console.html\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.unity3d.com\/Manual\/Console.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Debug.Log() slows down your editor or even hangs if it happens to run inside some long loop, but you can make it faster by disabling stacktrace from Debug.Log()! (see image above) Tested for-loop with 100000 iterations in editor (Unity 2018.1.6f1) &#8211; 25000ms with stacktrace enabled [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4795,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Faster Debug.Log #unitytips","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[797,3],"tags":[738,1049,1051,992,993,1050,1052],"class_list":["post-4794","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tips","category-unity3d","tag-debug","tag-debug-log","tag-faster","tag-log","tag-logging","tag-slow","tag-stacktrace"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/unitycoder.com\/blog\/wp-content\/uploads\/2018\/08\/faster-debug-log.gif?fit=550%2C259&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p1KTaT-1fk","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/comments?post=4794"}],"version-history":[{"count":1,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4794\/revisions"}],"predecessor-version":[{"id":4796,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/posts\/4794\/revisions\/4796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media\/4795"}],"wp:attachment":[{"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/media?parent=4794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/categories?post=4794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unitycoder.com\/blog\/wp-json\/wp\/v2\/tags?post=4794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}