作者apey ()
看板LinuxDev
標題[問題] 面試考題 哪段程式碼較快
時間Mon Jun 13 23:18:15 2011
hi
以下是今天我面試所遇到的考題
來這裡請教一下大家:
Q1:以下哪一段程式碼在arm plarform執行有較好的performance?
1.char fun (char a) {
return a+1;
}
2.short fun (short a) {
return a+1;
}
3.int fun (int a) {
return a+1;
}
Q2:interrupt不能做甚麼
a.setup DMA control
b.system call
c.fetch device data
d.record time
e.trigger another I/O
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.35.138
※ 編輯: apey 來自: 114.34.227.2 (06/13 23:23)
1F:→ pico2k:Q1:3 Q2:e 06/13 23:41
2F:推 askacis:Q1我也認為是3,32bit CPU下利用interger傳參數可以避免 06/14 00:02
3F:→ askacis:還要浪費指令幫short 跟char補成32bit的時間... 06/14 00:05
4F:推 keyword1983:3 e 06/14 23:48
5F:推 inses:第二題的答案如果用嚴格的說法應該不只一個 06/16 00:38
6F:推 iman00b:推樓上, 我也覺得不止一個~ 06/18 16:09
7F:推 CriLit:我覺得是 Q1:3, Q2:b 06/28 12:20
8F:→ CriLit:Q1應該是要多作 alignment 的動作 06/28 12:20
9F:→ CriLit:Q2則是 system call 有可能會牽涉到睡覺 06/28 12:21
10F:→ CriLit:Q2 的 a,c 感覺沒什麼問題, 這本來就是interrupt該做的 06/28 12:22
11F:→ CriLit:d 的話用一般的 rdtsc 或是 tick 都是這樣做的 06/28 12:22
12F:→ CriLit:e 的話 nested 也是有可能的 06/28 12:22
13F:→ CriLit:相較起來 system call 有太多會休眠的動作了 06/28 12:23
14F:推 askacis:tick也是timer中斷啊,其實我覺得Q2問法很奇怪... 06/29 00:56
15F:推 askacis:也沒說中斷是SWI還是IRQ/FIQ之類的,很難回答XD 06/29 01:01