从lighttpd学到的代码技巧

时间:2023-03-09 01:08:51
从lighttpd学到的代码技巧

平时写开脚本,很多时候我们都可以不怎样注意效率,但是看c代码的时候,你会发现,才意思自己真的是一个coder啦

1,单位转换 (根据传入的数返回相应的kb,mb,gb等等)

可能我们直觉来想就会这样做啦

if(num>1024*1024*1024){
return num/1024/1024/1024+"gb"
}elseif(num>1024*1024){
return num/1024/1024+"mb"
}else{
return num/1024+"kb"
}

我以前写文件上传的时候就是怎样写的,太笨啦,效率 也很低

来看看lighttpd怎样写

 static int mod_status_get_multiplier(double *avg, char *multiplier, int size) {
*multiplier = ' '; if (*avg > size) { *avg /= size; *multiplier = 'k'; }
if (*avg > size) { *avg /= size; *multiplier = 'M'; }
if (*avg > size) { *avg /= size; *multiplier = 'G'; }
if (*avg > size) { *avg /= size; *multiplier = 'T'; }
if (*avg > size) { *avg /= size; *multiplier = 'P'; }
if (*avg > size) { *avg /= size; *multiplier = 'E'; }
if (*avg > size) { *avg /= size; *multiplier = 'Z'; }
if (*avg > size) { *avg /= size; *multiplier = 'Y'; } return ;
}

这样比上面效率高多了,一层一层下去,减小了运算过程,大家一看就清楚