Redian新闻
>
gurus: How to optimize this c code
avatar
gurus: How to optimize this c code# Programming - 葵花宝典
b*8
1
About Alton
ALTONIndustry Ltd Group is one of the leading providers of consumer and
commercial vacuums and air compressors globally. Employing over 600 people,
with operations in Asia and North America, we develop and manufacture high
performance product for multiple markets. Our products can be found in
every
major retailer throughout the Americas. We build for the some of the best
brands in the industry including Briggs and Stratton, Stanley and Bostitchi.
The company has experienced significant growth and is searching for
talented individuals to join the team based in our Batavia, IL office.
Requirement:
-Over 3 years of work experience in import and export business
-English proficiency is a must
-Engineering background or MBA degree preferred
-Bilingual in Mandarin is a plus
Duties and Responsibilities:
-Coordinates and supervises the daily activities of business support,
technical or production staff in an assigned area
-Maintained relationship with fortune 500 customers and identified
potential
corporation
-Sets priorities for the team to ensure task completion; coordinates work
activities with other sales Reps
-Builds customer relationships, interprets customer needs and assesses
their
business
-Responsible for meeting and exceeding assigned monthly and annual sales
quotas.
-Identify and qualify new prospects via targeted market research, online
tools/database, and cold calling based on defined parameters.
Please send cover letter and resume to [email protected]
/* */ and [email protected]
altonindustries.com if interested.
avatar
e*r
2
请问有没有over the counter 的利尿片买, 英文是什么?谢谢.
avatar
a*b
3
报税白痴恳请大家帮我一步一步说一下
大家好, 我实在不知道怎么报税, 找来找去都没看到扫盲贴.
我2009. 7月之前是F1 学生, 在ohio;
7 月之后是 H1B, 在California.
我这种情况, 是不是州税要分别报Ohio 和California 的??
然后联邦税可以一起报??
我听大家的, 上了Ohio. gov. 找到一个免费软件, 结果根本注册不上去..... 我都要
奔溃了
有没有人跟我提示一下???
跪谢
avatar
f*e
4
void init_f (void)
{
char c[256] = {0};
int i = 0;
for (i = 0; i < 256; i++)
c[i] = (char) i;
}
avatar
t*n
5
利尿=diuretics
Diurex is OTC, but most such drugs are prescription-only.

【在 e***r 的大作中提到】
: 请问有没有over the counter 的利尿片买, 英文是什么?谢谢.
avatar
U*5
6
1。看一下pub519 确定你是否可以按resident报
2。要报两个州的(partial resident may be applied)
3。先完成federal, (irs website 有免费的软件,或打印表格手填)
4。州税也一样,到ohio和ca网站上download表格就好了

【在 a********b 的大作中提到】
: 报税白痴恳请大家帮我一步一步说一下
: 大家好, 我实在不知道怎么报税, 找来找去都没看到扫盲贴.
: 我2009. 7月之前是F1 学生, 在ohio;
: 7 月之后是 H1B, 在California.
: 我这种情况, 是不是州税要分别报Ohio 和California 的??
: 然后联邦税可以一起报??
: 我听大家的, 上了Ohio. gov. 找到一个免费软件, 结果根本注册不上去..... 我都要
: 奔溃了
: 有没有人跟我提示一下???
: 跪谢

avatar
D*a
7
用uint64一次加8个字节

【在 f*********e 的大作中提到】
: void init_f (void)
: {
: char c[256] = {0};
: int i = 0;
: for (i = 0; i < 256; i++)
: c[i] = (char) i;
: }

avatar
p*o
8
void init_f (void)
{
/* char c[256] = {0};
int i = 0;
for (i = 0; i < 256; i++)
c[i] = (char) i;*/
}
avatar
k*g
9
static const char c[256] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, tnnd ...
};
avatar
n*t
10
你这是什么东东?好像啥也没做。

【在 f*********e 的大作中提到】
: void init_f (void)
: {
: char c[256] = {0};
: int i = 0;
: for (i = 0; i < 256; i++)
: c[i] = (char) i;
: }

avatar
f*e
11
It's a piece of code to test if you can optimize it so it runs faster than
the current implementation.

【在 n******t 的大作中提到】
: 你这是什么东东?好像啥也没做。
avatar
g*y
12
纯从code看的话,把这个function直接丢掉运行最快,因为它什么也没做啊。
我估计是这个原因才有前面的问题的吧?

【在 f*********e 的大作中提到】
: It's a piece of code to test if you can optimize it so it runs faster than
: the current implementation.

avatar
f*e
13
this is one of the interview questions. I cannot figure it out. So put it
here and see if any gurus have any ideas to optimize it to run faster.

【在 g*****y 的大作中提到】
: 纯从code看的话,把这个function直接丢掉运行最快,因为它什么也没做啊。
: 我估计是这个原因才有前面的问题的吧?

avatar
y*d
14
simply
const char s0[256] = {0, 1, 2, 3, ...., 255}
memcpy ...

【在 f*********e 的大作中提到】
: this is one of the interview questions. I cannot figure it out. So put it
: here and see if any gurus have any ideas to optimize it to run faster.

avatar
L*n
15
i guess they are testing you some basic optimization techniques like loop
unrolling, etc

【在 f*********e 的大作中提到】
: this is one of the interview questions. I cannot figure it out. So put it
: here and see if any gurus have any ideas to optimize it to run faster.

avatar
p*t
16
o(n),难道要优化成o(1)?
想不出来。难道是要用List之类的?

【在 f*********e 的大作中提到】
: void init_f (void)
: {
: char c[256] = {0};
: int i = 0;
: for (i = 0; i < 256; i++)
: c[i] = (char) i;
: }

avatar
g*y
17
面试问题的话,很多是等着你去问的,看你提的问题就知道你对问题的理解程度了。
如果一定要运行时初始化内存的话,用memcpy那个帖子应该就可以了。其实就是
先单个拷贝不对齐的字节,对于对齐的部分,一次copy 32bits 或 64bits,
比挨个字节赋值要快得多。

【在 f*********e 的大作中提到】
: this is one of the interview questions. I cannot figure it out. So put it
: here and see if any gurus have any ideas to optimize it to run faster.

avatar
S*I
18
void init_f(void)
char c[256];
uint64_t* l = (uint64_t*) c;
int i;
// if big-endian, use
// l[0] = 0x0001020304050607;
l[0] = 0x0706050403020100;
for (i = 1; i < 32; i++)
l[i] = l[i-1] + 0x0808080808080808;
}

【在 f*********e 的大作中提到】
: void init_f (void)
: {
: char c[256] = {0};
: int i = 0;
: for (i = 0; i < 256; i++)
: c[i] = (char) i;
: }

avatar
p*s
19
几个可能的地方:
1.char c[256] = {0}; 会从头到尾把数组赋值成0,没意义
2.if (a3.c[i] 相当于 *(c+i),比c++和c--浪费
4.不要强制类型转化i,循环变量直接用char
5.见楼上大牛
avatar
o*n
20
都是大牛啊

【在 p********s 的大作中提到】
: 几个可能的地方:
: 1.char c[256] = {0}; 会从头到尾把数组赋值成0,没意义
: 2.if (a: 3.c[i] 相当于 *(c+i),比c++和c--浪费
: 4.不要强制类型转化i,循环变量直接用char
: 5.见楼上大牛

avatar
k*g
21

我笑了

【在 p********s 的大作中提到】
: 几个可能的地方:
: 1.char c[256] = {0}; 会从头到尾把数组赋值成0,没意义
: 2.if (a: 3.c[i] 相当于 *(c+i),比c++和c--浪费
: 4.不要强制类型转化i,循环变量直接用char
: 5.见楼上大牛

avatar
p*s
22
自嘲下,多谢楼上
avatar
t*t
23
呃, 你弄明白了他笑的原因吗?

【在 p********s 的大作中提到】
: 自嘲下,多谢楼上
avatar
p*s
24
大概是因为int转char是直接低位拷贝吧,大牛们指点下

【在 t****t 的大作中提到】
: 呃, 你弄明白了他笑的原因吗?
avatar
p*o
25
你写出来跑跑看就知道了。

【在 p********s 的大作中提到】
: 大概是因为int转char是直接低位拷贝吧,大牛们指点下
avatar
t*t
26
char的范围就是0-255, 现在需要0-255. 那什么时候循环能退出呢?

【在 p********s 的大作中提到】
: 大概是因为int转char是直接低位拷贝吧,大牛们指点下
avatar
p*s
27
void init_f (void)
{
char c[256];
char *cp = c+255;
char i = -1;
while(i)
*cp-- = i--;
c[0] = 0;
}
还是没明白,跑了结果貌似没啥问题,大牛们直说吧。明天电面了,救人一命胜造七级
浮屠啊
avatar
p*s
28
啊原来是这个,用了不是很elegant的overflow,见楼上。。
我还以为笑话我那个不要类型转化不是优化呢

【在 t****t 的大作中提到】
: char的范围就是0-255, 现在需要0-255. 那什么时候循环能退出呢?
avatar
t*t
29
yeah, so you have to do it in two steps: 1-255 and 0. what's the point?

【在 p********s 的大作中提到】
: 啊原来是这个,用了不是很elegant的overflow,见楼上。。
: 我还以为笑话我那个不要类型转化不是优化呢

avatar
p*s
30
每次循环省一个i
【在 t****t 的大作中提到】
: yeah, so you have to do it in two steps: 1-255 and 0. what's the point?
avatar
p*s
31
啊。。明白了,受教受教。一年多没写程序汇编指令忘光了,不好意思
avatar
f*e
32
我笨, 明白了啥? 能直说吗? 让咱刚入们的长点见识

【在 p********s 的大作中提到】
: 啊。。明白了,受教受教。一年多没写程序汇编指令忘光了,不好意思
avatar
t*t
33
well, for one thing, nowadays it's usually not advised to manually or
mentally do C->assembly mapping.

【在 p********s 的大作中提到】
: 啊。。明白了,受教受教。一年多没写程序汇编指令忘光了,不好意思
avatar
p*s
34
不好意思光顾向大牛们学习没说清楚,俺之前共犯了俩错误,一个是之前说的,int转
char是没有花费的,所以不需要优化循环变量i;另一个是我以为把for里面的判断句从
i<256改成i能节约一个比较,但是好像汇编里j类跳转指令依赖的signal都是要cmp指令
先赋值的,所以这个优化也没啥意义。。

【在 f*********e 的大作中提到】
: 我笨, 明白了啥? 能直说吗? 让咱刚入们的长点见识
avatar
L*n
35
so 8086ish...

【在 p********s 的大作中提到】
: 不好意思光顾向大牛们学习没说清楚,俺之前共犯了俩错误,一个是之前说的,int转
: char是没有花费的,所以不需要优化循环变量i;另一个是我以为把for里面的判断句从
: i<256改成i能节约一个比较,但是好像汇编里j类跳转指令依赖的signal都是要cmp指令
: 先赋值的,所以这个优化也没啥意义。。

avatar
H*r
36
这init_f(void)整个来看好像没做啥实际有意义的啊?

【在 f*********e 的大作中提到】
: void init_f (void)
: {
: char c[256] = {0};
: int i = 0;
: for (i = 0; i < 256; i++)
: c[i] = (char) i;
: }

avatar
H*r
37
#define SPEC_CHAR_ARRY {0, 1, 2, 3, ...., 255}
void init_f (void)
{
char c[] = SPEC_CHAR_ARRY;
// do sth ...
}

【在 y***d 的大作中提到】
: simply
: const char s0[256] = {0, 1, 2, 3, ...., 255}
: memcpy ...

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。