提升效能 : 資料對齊

程式通常都被要求要先把事情做對,再來要求效能,很多人常把事情倒過來做,我以前也喜歡這樣做,為什麼? 因為想要提升效能需要很多瑣碎的知識,當你知道一樣新的想法可以讓程式更快,就會想迫不急待的把它加到你的程式裡,但是程式執行結果都未必正確的情況下,這樣做只會增加程式的複雜度,結果都不正確了,跑再快又有什麼用? 但是到了真正到了把事情做對之後,就是到了開始恨自己瞭解的東西太少,我開始回想以前那些零碎的知識片段,看見我的程式存取記憶體,還有指標,讓我想起了一個重要的概念,資料對齊,這是一個很重要的概念,當資料的位址或長度不是CPU善長處理的數值時,CPU就需要花更多時間去處理,這也就是為什麼資料需要對齊的原因,會發現這個概念是因為我以前在寫struct寫入檔案時一直遇到一個莫明奇妙的bug,我發現struct的大小比我預料的大,後來才知道是資料對齊,編譯器自動將它填到對齊好的大小,現在我回想起來,找了一下,找到了一篇很不錯的文章,圖文並茂地說明了資料對齊的概念

Data alignment: Straighten up and fly right

當瞭解資料對齊的概念之後,就會明白為什麼buffer的長度常常會取256, 512, 1024等等數字

This entry was posted in 中文文章, 分享 and tagged . Bookmark the permalink.

Comments are closed.