【发布时间】:2015-06-17 13:55:57
【问题描述】:
extern inline double getColorPercentage(uint8_t *pixel, uint8_t *pixel2) {
//pixel 1 is 255, 255, 255
//pixel 2 is 0, 0, 0
//match is 0
//pixel 1 and 2 is 255, 255, 255
//match is 1.0
return (255-fabs(pixel[2] - pixel2[2])) * (255-fabs(pixel[1] - pixel2[1])) * (255-fabs(pixel[0] - pixel2[0])) /16581375.0;
}
我编写了这个函数并尝试对其进行优化,并希望它可以进一步优化。我经常使用它,有人知道提高性能的方法吗?
【问题讨论】:
-
你为什么用
fabs()而不是abs()? -
您应该使用
static inline而不是extern inline。 -
我认为这应该迁移到代码审查。该网站不是菜单上的选项之一(我想知道为什么?),我不想将其标记为“需要主持人干预”。也许其他用户可以迁移它?
-
@Panzercrisis 最好的做法是投票关闭“太宽泛”并发表评论。它不在列表中,因为 a) 它还没有完全毕业(但计划这样做)b) 仍然有相当多的 SO 用户没有了解 Code Review 的真正主题。跨度>
-
pixel1和pixel2应声明为const uint8_t *
标签: c++ math optimization