[問題] 面試考題 哪段程式碼較快

看板LinuxDev作者時間13年前 (2011/06/13 23:18), 編輯推噓7(708)
留言15則, 6人參與, 最新討論串1/1
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)

06/13 23:41, , 1F
Q1:3 Q2:e
06/13 23:41, 1F

06/14 00:02, , 2F
Q1我也認為是3,32bit CPU下利用interger傳參數可以避免
06/14 00:02, 2F

06/14 00:05, , 3F
還要浪費指令幫short 跟char補成32bit的時間...
06/14 00:05, 3F

06/14 23:48, , 4F
3 e
06/14 23:48, 4F

06/16 00:38, , 5F
第二題的答案如果用嚴格的說法應該不只一個
06/16 00:38, 5F

06/18 16:09, , 6F
推樓上, 我也覺得不止一個~
06/18 16:09, 6F

06/28 12:20, , 7F
我覺得是 Q1:3, Q2:b
06/28 12:20, 7F

06/28 12:20, , 8F
Q1應該是要多作 alignment 的動作
06/28 12:20, 8F

06/28 12:21, , 9F
Q2則是 system call 有可能會牽涉到睡覺
06/28 12:21, 9F

06/28 12:22, , 10F
Q2 的 a,c 感覺沒什麼問題, 這本來就是interrupt該做的
06/28 12:22, 10F

06/28 12:22, , 11F
d 的話用一般的 rdtsc 或是 tick 都是這樣做的
06/28 12:22, 11F

06/28 12:22, , 12F
e 的話 nested 也是有可能的
06/28 12:22, 12F

06/28 12:23, , 13F
相較起來 system call 有太多會休眠的動作了
06/28 12:23, 13F

06/29 00:56, , 14F
tick也是timer中斷啊,其實我覺得Q2問法很奇怪...
06/29 00:56, 14F

06/29 01:01, , 15F
也沒說中斷是SWI還是IRQ/FIQ之類的,很難回答XD
06/29 01:01, 15F
文章代碼(AID): #1DzYev8B (LinuxDev)