官术网_书友最值得收藏!

Minimizing ongoing code changes

Making code changes to the application in order to hunt down performance issues is best done carefully, as the changes are easy to forget as time wears on. Adding debug logging statements to our code can be tempting, but remember that it costs us time to introduce these calls, recompile our code, and remove these calls once our analysis is complete. In addition, if we forget to remove them, then they can cost unnecessary runtime overhead in the final build since Unity's debug Console window logging can be prohibitively expensive in both CPU and memory.

A good way to combat this problem is to add a flag or comment everywhere we made a change with our name so that it's easy to find and remove it later. Hopefully we're also wise enough to use a source-control tool for our codebase making it easy to differentiate the contents of any modified files and revert them to their original state. This is an excellent way to ensure that unnecessary changes don't make it into the final version. Of course, this is by no means a guaranteed solution if we also applied a fix at the same time and didn’t double-check all of our modified files before committing the change.

Making use of breakpoints during runtime debugging is the preferred approach, as we can trace the full callstack, variable data, and conditional code paths (for example, if-else blocks), without risking any code changes or wasting time on recompilation. Of course, this is not always an option if, for example, we're trying to figure out what causes something strange to happen in one out of a thousand frames. In this case, it's better to determine a threshold value to look for and add an if statement with a breakpoint inside, which will be triggered when the value has exceeded the threshold.

主站蜘蛛池模板: 柘荣县| 牙克石市| 呼和浩特市| 武宣县| 黔南| 新绛县| 大洼县| 望江县| 天长市| 屯留县| 合肥市| 红桥区| 青铜峡市| 万山特区| 固阳县| 嘉荫县| 沽源县| 呈贡县| 河东区| 镇坪县| 福泉市| 阳原县| 清远市| 杭锦旗| 安溪县| 香格里拉县| 奇台县| 株洲县| 赣榆县| 安丘市| 高碑店市| 渑池县| 定西市| 突泉县| 青阳县| 邛崃市| 浑源县| 湘潭市| 浠水县| 双牌县| 连平县|