Programming 板


LINE

※ 引述《sorryChen (陳揚和)》之銘言: : 感謝大家耐心回覆我的問題 : 我必須要用static variable的原因是為了要節省空間 : 其實我原來比擬的"car"是一段encode binary string (DNA short fragment) : 只占 8 byte. 在加個int 每個read就多占4 btye了 : 因為原來每個fragment 長度都相等. 只需一份 'statict variable' : 現在需要多種不同長度的fragments set, 所以定義多個class 其他method相同 : 但是不同set 長度不同.. 所以要幾個class 有幾份自己的 "static variable" : 我確實應該作個abstract class 然後每個在定義自己的static variables : 比如說fragment30, fragment40, fragment50 .. fragment60.. : 30, 40, 50, 60是不同的 但這樣其實還滿困擾的 每個都要定一個用const 忘了在哪兒, 我曾經說過類似的話: 空間使用多少, 從來都不該當成是某 variable 要當成 instance variable 或 class variable 的依據, 而是 概念上, 它是不是真的是每個 instance 的 attribute. 當然, 可以像另外有人推文說用 template. 但假設我們以 OOP 的方法去解決, 如果你介意的是那 4byte, 那我覺得你不該以 OOP 來寫這堆程式了. 就算如你之前說 想靠 override 之類的方法去達成, 一般 method override 都是靠 virtual func ptr table, 你要加這一個 virtual method, 就等如在 virtual func ptr table 加了一個 entry, 那麼至少 就佔一個 ptr 的 size 了 (32 bit platform 就是 4 bytes 了) 以為在 variable 本身省了, 但在另一方面又多用了... anyway, 要是真的不想用 member variable 達成, 就唯有這樣吧: class Animal { protected virtual String getVoice() = 0; public void shout() { print("SHOUTS: " + getVoice()); } } class Cat extends Animal { static const String VOICE = "Meow"; protected virtual String getVoice() { return VOICE; } } 不過, 各類 OOPL 通常的 overhead 都比你介意的那 4 bytes 要大, 這樣省得到的有多少你可以自己留意了 :) 我一向覺得, 先寫得正 確, 真的有問題才想要不要做額外的 optimize 或 refactoring 吧 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82
1F:推 march20:其實我比較好奇的是, 原 po 為什麼想要 128.54.40.203 07/31 01:48
2F:推 march20:節省那 4byte 啊? 是機器有限制嗎? 128.54.40.203 07/31 01:49
3F:推 sorryChen:對啊 因為有上百萬個fragment所以長度要 128.125.87.33 07/31 06:32
4F:→ sorryChen:用static variable來共用 128.125.87.33 07/31 06:33
5F:→ adrianshum:百萬個, 每個 4byte 也才那幾 MB 而已 202.155.236.82 07/31 15:44
6F:→ adrianshum:相比你至少幾十byte 的資料, 那真的很 202.155.236.82 07/31 15:45
7F:→ adrianshum:小吧... 不然就用 short 甚至 char 存 202.155.236.82 07/31 15:45
8F:→ adrianshum:長度吧... 1-2 bytes 不會負擔不來吧? 202.155.236.82 07/31 15:46
9F:推 march20:原 po 用的機器倒底是什麼啊? 8086 嗎 XD 66.75.255.220 07/31 16:08
10F:推 sorryChen:其實雖然reads很多但不會存不下來 128.125.87.33 08/01 11:23
11F:→ sorryChen:雖然1B個reads也差不大.. 128.125.87.33 08/01 11:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP