调试代码常用方法
调试代码的学习,需要了解它的构成,有静态代码、打印、日志、第三方日志、调试器和专用工具,然后利用合适的工具和方法去实践。
打印调试法与日志
最有效的 debug 工具就是细致的分析,配合恰当位置的打印语句。 — Brian Kernighan, Unix 新手入门。
调试代码的学习,需要了解它的构成,有静态代码、打印、日志、第三方日志、调试器和专用工具,然后利用合适的工具和方法去实践。
最有效的 debug 工具就是细致的分析,配合恰当位置的打印语句。 — Brian Kernighan, Unix 新手入门。
构建工具通常需要定义依赖、目标和规则。
make
是最常用的构建系统之一,您会发现它通常被安装到了几乎所有基于 UNIX 的系统中。make
并不完美,但是对于中小型项目来说,它已经足够好了。当您执行 make
时,它会去参考当前目录下名为 Makefile
的文件。所有构建目标、相关依赖和规则都需要在该文件中定义,它看上去是这样的:
无界面情况下的唯一选择
命令行环境的学习主要包括
Shell 会使用 UNIX 提供的信号机制执行进程间通信。当一个进程接收到信号时,它会停止执行、处理该信号并基于信号传递的信息来改变其执行。就这一点而言,信号是一种软件中断。
Shell 命令行数据处理是在 Unix 系统处理大数据绕不过去的技能。
学习需要和场景相结合,在熟悉 awk、paste 等工具的基础上,根据实际需求迭代工具集,并且记录例子。
学习性能分析,最开始是查看执行时间,然后用工具帮助排查问题,用资源监控辅助。
即使您的代码能够像您期望的一样运行,但是如果它消耗了您全部的 CPU 和内存,那么它显然也不是个好程序。算法课上我们通常会介绍大 O 标记法,但却没教给我们如何找到程序中的热点。 鉴于 过早的优化是万恶之源,您需要学习性能分析和监控工具,它们会帮助您找到程序中最耗时、最耗资源的部分,这样您就可以有针对性的进行性能优化。
计算机的文字接口 Shell 处理 GUI 接口无法应对的剩下 20% 使用场景。
Shell 工具和脚本的学习,其实是三块内容,Shell 语言编程、Shell 场景&工具,以及脚本编写。