PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 問個基礎問題,效能怎樣會高
作者:
sec5566
(sec)
2016-08-30 16:54:38
之前面試一家考試有一題是
兩個程式哪個比較快
兩個記得只差在
一個陣列是a[2][5]
一個是a[5][2]
這兩個真的有差嗎?
有一段時間了 題目其他部分不太記得
只記得其他行都一樣
另外主要想問怎樣的程式效能比較高
是程式比較短?還是迴圈少?
還是差在變數型態?
我對這方面真的不知道耶
估過狗發現很少有資料
不過記算處理時間的文倒是滿多的
重點不知道怎樣變短
就算得到時間也不知為何
作者:
damody
(天亮damody)
2016-08-30 17:08:00
Cpu cache
作者:
sunev
(Veritas)
2016-08-30 17:13:00
row major
作者:
Eleina
(艾琳娜)
2016-08-30 17:32:00
array 在 mem 中的儲存方式 -> 載入 cache 哪個容易 miss
作者:
carylorrk
(carylorrk)
2016-08-30 17:41:00
這兩個寫法在記憶體的儲存方式不是一樣嗎?a[2][5] 跟 a[5][2] 跟 a[10] 都是連續記憶體配置吧?然後如果 loop 都是先動 col 再動 row,就是順序存取?
作者:
nowar100
(拋磚引玉)
2016-08-30 19:06:00
跟順序存取比較無關 關鍵是他怎麼從mem load to cache的事實上目前的a[0][0] a[1][0] 這種方式也不會是順序存取
作者:
wtchen
(沒有存在感的人)
2016-08-30 19:57:00
不懂,二維矩陣宣告(非malloc)預設不會用連續空間?如果是用**p宣告二維陣列我可以理解可能不會連續
作者:
Schottky
(順風相送)
2016-08-30 20:16:00
我倒覺得問題應該是出在原 PO 不記得的程式碼裡
作者:
bluesoul
(å¿™æ»ä½ è€çˆ¸)
2016-08-30 20:20:00
不要做多餘的事情,程式就會快
作者:
wuliou
(wuliou)
2016-08-30 23:18:00
速度有差啊 前三樓的原因
作者:
stupid0319
(徵女友)
2016-08-30 23:19:00
買I7以上電腦
作者:
james732
(好人超)
2016-08-31 00:02:00
話說這種東西應該跟compiler與hardware實作也會有關係?
作者:
EdisonX
(卡卡獸)
2016-08-31 00:04:00
是 cache 沒錯,像是 matrix 相乘,加快的方式就是把第二個 matrix 轉秩後再相乘,便是用 cache 特性.若取出的資料和上一筆資料都在附近(locality),cache率高.
https://www.youtube.com/watch?v=IFWgwGMMrh0
(所以才有 matrix mult. blocking 算法 )
作者:
ronin728
(浪人)
2016-09-04 12:20:00
給了關鍵字先Google,看不懂網路文章再來問,這是常識
作者:
wtchen
(沒有存在感的人)
2016-09-04 15:10:00
問一下,有沒有辦法在跑程式的過程中偵測到cache miss?不是perf那種,而是讀取data的當下發現不在cache裡還是perf有函式庫可以套用到C program裏面?
作者:
wope
(獨立黑色色彩)
2016-09-13 00:41:00
edisonx 正解malloc也有類似的問題
繼續閱讀
[問題] opencv 存取違規問題
oreoyeah
[問題] 注音變成亂碼
HenryLiKing
Re: [問題] memory stack 的問題
tinlans
[問題] cout出來的endl或"\n"要怎麼刪掉?
ReiFu21
[問題]arduino 使用struct包裝兩個數值回傳
smallswine
Re: [問題] memory stack 的問題
descent
[問題] memory stack 的問題
kyuudonut
Re: [問題] 關於Labview與C的wrapper.dll問題
MasterChang
[問題] opengl學習推薦
justtoothick
[問題] 指標是否等於存取RAM?
hsucheng
Links
booklink
Contact Us: admin [ a t ] ucptt.com