优化传输数据缓冲区的内存和性能

时间:2013-01-15 09:20:24

标签: c++ optimization embedded

我有一个准备数据缓冲区的函数,然后通过外部提供的API函数发送它,如下所示:

send(uint8_t* data_buf, uint32_t length)

在我的特殊情况下,我的代码总是发送8个字节,前7个字节总是相同的(我不能改变这个事实;它是某种消息头)。

因为我处于有限的嵌入式环境中,所以我想优化代码的大小和性能,或者至少选择两者的最佳权衡。

目前,我看到两个选项:

  1. 创建一个全局数组。一次初始化前7个字节然后 只是在发送数组之前覆盖最后一个字节。
  2. 创建一个本地数组,写入所有8个字节,然后发送它。
  3. 有没有比上面提到的更好的解决方案?

1 个答案:

答案 0 :(得分:-1)

即使在嵌入式系统上,您也可以拥有超过8个字节的缓存。因此,表现无关紧要。在这两种情况下,databuf[8]都将完全处于缓存中。第一种情况的代码大小可能会减少2-3条指令。

(通常还有另一个问题:代码/闪存大小和RAM大小是不同的约束,当你可以XIP时)。