Re: [問題] linklist和forloop處理資料的速度
※ 引述《clarkman (涼雨)》之銘言:
: 目前想管理一組編號,可能是0~255,然後想要做到快速處理
: 用C處理
: 現在考慮兩種作法,不太知道怎麼樣才能做到高效率。
: 請問大家有更好的辦法嘛?以及下面兩種我該選擇哪一種?
: 1. 使用linklist,當編號空出來就塞到linklist裡,要用編號就
: 直接取走,移除這個node
: 缺點:一直new和free,還有串連、移除 =>這是目前的架構
: 2. 開一個32byte的陣列,每個bit當成是一個id
: 一次掃一個byte,如果是ff,代表全用掉,往下一個byte掃
: 當發現不是ff,就開始掃bit,掃到後換算成id
: 缺點:怕掃資料花太多時間,最壞的案例應該是id 255,先掃16次byte
: 確認有無用完,然後再掃七次bit確認有沒有空的
3. 在記憶體空間很夠的時候,使用 linklist ,但是不要 new/free 。
一開始先把 256 個 nodes 用 array 開好,然後把它們串起來。
要用編號就從頭取走,然後指到新的頭。有新編號空出來,
就從頭的地方塞進去。
--
活著的目的是為主活 然後為主死
死亡的目的是為主死 然後為主活
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.24.61
推
06/21 09:10, , 1F
06/21 09:10, 1F
→
06/21 10:23, , 2F
06/21 10:23, 2F
→
06/21 10:23, , 3F
06/21 10:23, 3F
嗯,一個 node 應該只需要一個 byte ,這應該已經... 很省了阿 XD
※ 編輯: sitos 來自: 122.116.24.61 (06/21 14:32)
推
06/24 10:15, , 4F
06/24 10:15, 4F
我隨便心裡面估一下,應該是比原本提到的方法快。
不過當然也很可能有其它好寫又更快的方法。
※ 編輯: sitos 來自: 122.116.24.61 (06/25 02:25)
推
06/26 05:27, , 5F
06/26 05:27, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):