Yoo*_*ang 5 c# debugging unity-game-engine unity5
我的同事们说,剩余Debug.Log导致延迟.但我认为这有助于加强和加速我们的发展.此外,我发现有一个禁用Debug.Log生产环境的选项.
给我你的意见.
当Debug.Log()被调用时,它可能会影响性能,因为它会做一些堆栈跟踪分析,然后写一些东西到一个文件中.
它必须深入到堆栈跟踪中,所以如果你有很多Debug.Logs,那么你可能会在构建中看到性能损失.
您可能希望通过Debug.Log在Debug Build中调用语句来避免这种情况.来自Unity Docs:
在"构建设置"对话框中,有一个名为"开发构建"的复选框.
所以你可以这样做,只有在选中框时才会调用它:
if (Debug.isDebugBuild) {
Debug.Log ("If you can see this, you are in Debug Mode");
}
Run Code Online (Sandbox Code Playgroud)
这将停止正在写入的日志文件.
小智 5
如果您每帧都有几个日志,那么是的,它会降低您的性能。但是聪明地使用它只会给你关于代码内部内容的非常重要的反馈。它还有助于检测,例如,某些网络服务不工作或您无法预测的任何事情。我的建议是使用日志记录,但要聪明
我建议您编写自己的记录器类。然后,您可以禁用/启用特定类型/场景/环境/任何内容的日志记录。我也更喜欢在乞讨上添加日志的位置,比如[ClassName.MethodName()] LOG-MESSAGE
创建您自己的记录器类会给您带来很多好处,而不会花费您太多时间。我个人为自己制作了自定义记录器类,它可以禁用特定类型的日志(因此您可以在需要时打开/关闭调试而无需更改代码,只需一个标志)并格式化日志消息,使其看起来更好。无论如何,它最终都会使用 Debug.Log。它被编译为分离的程序集,因此如果您单击 Unity 控制台中的日志,它仍会将您重定向到触发日志的代码行。如果您不将其编译为程序集,它会将您重定向到触发 Debug.Log 的自定义记录器方法。
这只是我使用自定义记录器的建议,但通常我强烈建议使用日志记录。当用户做了一些有趣的事情时触发的几个日志不会影响你的应用程序,真的。
| 归档时间: |
|
| 查看次数: |
2592 次 |
| 最近记录: |