[請益] hash function

看板EE_DSnP作者 (開心的過每一天~)時間16年前 (2009/06/29 23:29), 編輯推噓4(405)
留言9則, 5人參與, 最新討論串1/1
雖然放暑假了 不過我還是很好奇 我用的hash function是 key = add_bddl ^ (add_bddr>>2) + level 我改成上面那個之後效能比我原本用的 key = 800*add_bddl +1000*add_bddr + 500*level 整整快了一倍 連cache一起改了之後就變成四倍了@@ 可是跟老師的一比較之後就一整個輸很大~~~ 我查了一下似乎是當hash function可以讓hash幾乎成為cache時會達到最佳化 也就是投影片說的最平均分配的hash 不知道老師是用了什麼祕方可以讓BDD跑這麼快呢@@? 還是有人寫出比老師快的可以分享一下嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.33.163

06/29 23:37, , 1F
你有用 -O3 嗎.... XD
06/29 23:37, 1F

06/29 23:51, , 2F
.....|||
06/29 23:51, 2F

06/29 23:51, , 3F
開外掛啦= =
06/29 23:51, 3F

06/29 23:53, , 4F
呃...我是有想到要用O3拉...只是我沒有想到老師的有用orz
06/29 23:53, 4F

06/29 23:53, , 5F
難怪我dfs跟rdfs跑不出來...
06/29 23:53, 5F

06/29 23:54, , 6F
不過我還是很好奇 到底有沒有什麼解最佳hash function的方法
06/29 23:54, 6F

06/29 23:57, , 7F
好奇+1 我直接相加起來再shift...
06/29 23:57, 7F

06/30 01:10, , 8F
我用(_left<<3) + (_right) + _level 跟老師速度幾乎相同
06/30 01:10, 8F

06/30 01:57, , 9F
看來O3才是真正的速度關鍵阿= =+
06/30 01:57, 9F
文章代碼(AID): #1AIDt6_I (EE_DSnP)