CSSAPP稀里糊涂的读书笔记(五)优化程序性能

本文探讨了提升程序性能的方法,包括选择合适的数据结构与算法、代码优化、循环展开、并行计算等,旨在帮助开发者编写更高效的代码。

本章主要探讨如何使用几种不同类型的程序优化技术,使程序运行的更快。

  1. 编写高效程序需要做到以下几点:第一,我们必须选择一组适当的算法和数据结构。第二,我们必须编写出编译器能够有效优化以转换成高效可执行代码的源代码。第三,针对处理运算量特别大的计算,将一个任务分成多个部分,这些部分可以在多核和多处理器的某种组合上并行地计算。
  2. 程序优化地第一步就是消除不必要地工作,让代码尽可能有效地执行所期望地任务。这包括消除不必要地函数调用、条件测试和内存引用。第二步,利用处理器提供地指令级并行能力,同时执行多条指令。
  3. 消除循环地低效率。避免在循环判断地时候调用函数,而是将该函数地结果赋给一个局部变量。这种优化称为代码移动。
    在这里插入图片描述
  4. 减少过程调用。
  5. 消除不必要地内存引用。
    在这里插入图片描述
  6. 通过理解现代处理器的性能和特点进行优化,不展开了。
  7. 循环展开。通过增加每次迭代计算的元素的数量,减少循环的迭代次数。
  8. 提高并行性。但是,如果我们的并行度p超过了可用的寄存器数量,那么编译器会诉诸溢出(spilling),将某些临时值存放到内存中,通常是在运行时堆栈上分配空间。此时效率可能变差。
  9. 理解内存的性能,了解加载和存储的性能及影响等。
  10. 优化程序性能的基本策略:
  • 高级设计。为遇到的问题选择适当的算法和数据结构。
  • 基本编码原则:消除连续的函数调用;消除不必要的内存引用。
  • 低级优化:展开循环,降低开销;提高指令级并行;用功能性风- 格重写条件操作,使得编译采用条件数据传送。
STM32(意法半导体)是一种广泛应用于嵌入式系统的微控制器平台。下载指的是将开发好的程序或固件烧录到STM32芯片内部的过程。 当使用STM32进行下载时,如果没有正确地设置或操作,就会出现稀里糊涂的情况。下载过程通常涉及到软件和硬件两个方面: 软件方面,首先需要选择合适的集成开发环境(IDE),例如Keil、IAR Embedded Workbench等,然后配置好开发环境中的下载工具。如果下载工具与芯片型号和连接方式不匹配,就会遇到下载失败或出现稀里糊涂的问题。 硬件方面,确保正确连接下载工具和目标STM32芯片,通常使用 JTAG 或 SWD 接口进行连接。如果连接错误或接触不良,也会导致下载失败或出现错误。 解决这种稀里糊涂问题的方法通常包括以下几步: 1. 检查软件设置:确认使用的IDE和下载工具版本与STM32芯片兼容;检查下载器和芯片连接设置是否正确。 2. 检查硬件连接:确保下载器正确连接到目标STM32芯片的JTAG或SWD接口上,并保持稳定的连接。 3. 引脚映射:检查芯片上的引脚映射是否正确,确保下载器与芯片之间的引脚对应正确。 4. 重启和复位:尝试对STM32芯片进行复位操作,或重新启动开发环境和下载工具。 如果以上方法都无效,可以尝试换用其他下载工具或IDE进行下载,或者咨询相关技术支持进行帮助。总之,稀里糊涂的STM32下载问题通常是由设置错误、连接问题或软硬件不兼容等原因引起的,通过仔细检查和调试可以解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值