盡可能減少 資料處理中的記憶體消耗

2022-06-07 19:33:11 字數 1056 閱讀 6546

盡可能減少 資料處理中的記憶體消耗

伺服器成本 時間成本

'''

'''def filerows(f, debug=false):

l =

global pass_ip

with open(f, 'r') as fr:

for i in fr:

try:

# d = json.loads(i)

i=i.strip('\n')

except exception as e:

if debug:

print(e)

print(i)

print(f)

fr.close()

del fr

return l

for f in file_list:

if target_date not in f:

continue

rows_ = filerows(f)

print(f, ':', len(rows_))

rows += rows_

del rows_

d = {}

for i in rows:

if 'uid' not in i:

continue

try:

i = json.loads(i)

uid, uuid, long_ip = i['uid'], i['uuid'], i['ip']

if uid not in d:

d[uid] = {}

d[uid]['uuid'], d[uid]['long_ip'], d[uid]['pv'] = , , 0

d[uid]['pv'] += 1

except exception as e:

if 4 > 91:

print(e)

資料預處理階段

資料的結構化處理會消耗不必要的記憶體,比如多行的json字串構成的檔案的逐行字串轉json

在資料的業務層面,逐行結構化,占用接近恆定的記憶體,增加對記憶體的控制性

盡可能使用 const

使用 const 的好處在於它允許指定一種語意上的約束 某種物件不能被修改 編譯器具體來實施這種約束。通過 const,你可以通知編譯器和其他程式設計師某個值要保持不變。只要是這種情況,你就要明確地使用 const 因為這樣做就可以借助編譯器的幫助確保這種約束不被破壞。對指標來說,可以指定指標本身為...

盡可能使用const

const定義語義約束 制定乙個不被改動的物件,編譯器會強制實施這項約束。只要某值保持不變時事實,就應該確實說出來,這樣編譯器可以確保這項約束不違反。const多才多藝 可以用在classes外部修飾global或namespace作用域中的常量,或修飾檔案 函式 或區塊作用於中被宣告為static...

盡可能使用const

一 中心思想 1 將某些東西宣告為const可幫助編譯器偵測出錯誤用法。const可被施加於任何作用域內的物件 函式引數 函式返回型別 函式返回型別 成員函式本體 2 編譯器強制實施bitwise constness,但你編寫程式時應該使用 概念上的常量性 3 當const和non const成員函...