作者reader (讀者)
看板CSSE
標題Re: [心得] 資料存取
時間Thu Mar 10 00:23:26 2005
※ 引述《reader (讀者)》之銘言:
: 標題: [心得] 資料存取
: 時間: Wed Mar 9 06:51:43 2005
:
: 推 jeunder:我很好奇, 怎樣的應用會需要以上的存取方式? 61.230.218.37 03/09
應用太多了吧。
它可以取代多種資料結構,或用簡單包裝就可以製作出多種資料結構,
一個無限維度的疏散陣列,要模擬其他資料結構是很容易的。
在物件導向相關應用上,則最實用的地方就是物件資料庫了,我們可以
把所有重要物件依型別、指標、相依性等等登記起來,往後要做什麼都
方便,例如 garbage collection, message dispatching, object
persistence 等等。一些小型應用也可以不需要連結外部資料庫,直接
用這樣的類別來做,理論上它比傳統資料庫更有延展性。
此外,由於樹狀結構的資料格式愈來愈重要 (例如 XML), 方便的樹狀
結構存取,也是它的優勢。當然傳統的文字處理,也有用得到的地方。
*
當然,重點是效能和空間。若疏散陣列的效能低於其他資料結構太多,
自然不成,反之則不需要獨立製作多種資料結構,而可以用疏散陣列來
模擬。
目前實作上,只要把循序 travelling 砍掉,我就能做到不錯的效果。
說穿了,因為我本來就做好一維的疏散陣列,效能還不錯,對我來說,
只是改成多維而已。
早期我是用 B+ tree 來做,後來改用更浪費空間,但效能更高的結構,
現在用得還算滿意,這也是我做高效能網路應用的最大依靠了,別人都
要連接外部資料庫,很多時候都是殺雞用牛刀,而我可以在程式內直接
處理...
*
等我把這東西搞定,程式庫翻修好,再據此改寫 visual object 設計
(這也是一大應用),如果下半年不太窮也不太忙的話,希望就可以
開始製作自己的應用程式了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.222.173.26
1F:推 Eventis:有什麼特殊的定址技巧嗎? 61.62.49.43 03/10
2F:→ Eventis:因為維度上升對效能的影響似乎很大. 61.62.49.43 03/10
3F:→ Eventis:不是很能從一維效能不錯, 61.62.49.43 03/10
4F:→ Eventis:就能直接推到一維的一維的一維的..效能不錯吧? 61.62.49.43 03/10
5F:推 tkbible:多維度的資料結構,可能會使complexity上升 218.166.77.82 03/12
6F:→ tkbible:就以2D DCT轉換,也都反而拆成2個1D來完成 218.166.77.82 03/12
7F:→ tkbible:使得時間複雜度得到最佳化 218.166.77.82 03/12
8F:推 Eventis:-.-"...這應該是不同的情形吧. 61.62.49.43 03/13
9F:→ Eventis:2D-dct可以用一維轉化是因為結構本身的特性 61.62.49.43 03/13
10F:→ Eventis:但是這個結構很單純的是要做多維的定址. 61.62.49.43 03/13
11F:→ Eventis:處理時必須要保有各個維度的資訊. 61.62.49.43 03/13
12F:→ Eventis:再加上維度是任意給定的,情況就更複雜. 61.62.49.43 03/13
13F:推 Eventis:假設純一維的定址運算量是n 61.62.49.43 03/13
14F:→ Eventis:任意多維的worst case就是n^n啊@@ 61.62.49.43 03/13
15F:→ Eventis:n^n以上@@ 61.62.49.43 03/13
16F:→ Eventis:勢必要以不同的方式來存取吧=.=" 61.62.49.43 03/13
17F:→ Eventis:XD...不過反正板主有回答了XD 61.62.49.43 03/13