Skip to content

Commit 70d8359

Browse files
committed
新增大数据字典作为模块导入效率测试
1 parent fcb7d16 commit 70d8359

3 files changed

Lines changed: 1000062 additions & 1 deletion

File tree

big_data.py

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,52 @@ def read_data_all():
4646
print i.split('\t')
4747

4848

49+
@tools.time_log.time_log
50+
def create_dict():
51+
"""
52+
创建大数据字典(作为模块使用)
53+
"""
54+
write_file_name = 'config_dict/data_dict.py'
55+
with open(write_file_name, 'wb') as wf:
56+
# 写入开始头部定义
57+
wf.write('DataDict = {\n')
58+
# 逐行读取文件
59+
read_file_name = 'static/csv/data.csv'
60+
with open(read_file_name) as rf:
61+
for line in rf:
62+
line_list = line.rstrip('\n').split('\t')
63+
row = '\t\'%s\': \'%s\',\n' % (line_list[0], line_list[1])
64+
print row
65+
# 写入单行数据
66+
wf.write(row)
67+
# 写入尾行
68+
wf.write('}\n')
69+
70+
71+
@tools.time_log.time_log
72+
def load_dict():
73+
"""
74+
加载大数据字典
75+
"""
76+
from config_dict.data_dict import DataDict
77+
return DataDict
78+
79+
80+
@tools.time_log.time_log
81+
def get_dict_value(big_dict, key):
82+
"""
83+
查找大数据字典的值
84+
"""
85+
print big_dict.get(key)
86+
87+
4988
if __name__ == '__main__':
5089
# create_data()
5190
# read_data_line()
52-
read_data_all()
91+
# read_data_all()
92+
# create_dict()
93+
dict_tmp = load_dict()
94+
get_dict_value(dict_tmp, '1550')
5395

5496

5597
"""
@@ -76,4 +118,19 @@ def read_data_all():
76118
以上结果可以看出:
77119
逐行读取文件比一次性加载文件节约内存,适合处理大数据的场景
78120
一次性加载文件的方式适合数据量不大(占用内存可以忽略),但对速度要求较高的场景
121+
"""
122+
123+
"""
124+
zhanghe@ubuntu:~/code/python$ du -h config_dict/data_dict.py
125+
18M config_dict/data_dict.py
126+
127+
方法load_dict开始时间:Fri Aug 14 00:25:42 2015
128+
方法load_dict结束时间:Fri Aug 14 00:25:43 2015
129+
方法load_dict运行时间:0.85S
130+
方法get_dict_value开始时间:Fri Aug 14 00:25:43 2015
131+
153
132+
方法get_dict_value结束时间:Fri Aug 14 00:25:43 2015
133+
方法get_dict_value运行时间:0.00S
134+
135+
可以看出将大字典作为模块导入,效率是最快的。
79136
"""

config_dict/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# encoding: utf-8
2+
__author__ = 'zhanghe'

0 commit comments

Comments
 (0)