with open("corpus.jsonl","r") as rd:
for line in tqdm(rd.readlines()):
line=line.strip()
obj=json.loads(line)
_id=obj["id"]
id2ent[_id]=obj
这个代码怎么写能让他跑得更快
1
yucongo 2022-09-19 14:03:24 +08:00 1
|
2
passerby233 2022-09-19 15:31:41 +08:00 1
for line in rd:
line = line.strip('\n') |
3
killva4624 2022-09-19 19:52:38 +08:00 1
readlines 会一次性把所有行读进去,换逐行读取。
|
4
zxCoder OP @killva4624 全读内存里不是会更快吗
|
5
HashV2 2022-09-19 22:49:37 +08:00 1
@zxCoder #4 逐行读也会到内存里的,一次加载所有的数据会有 io 问题,如果行与行之间不存在关联逻辑,逐行更好一些
|
6
LindsayZhou 2022-09-19 23:18:46 +08:00
如果性能瓶颈在 json 解析的话,用 ujson: https://github.com/ultrajson/ultrajson
看 fastapi 的时候找到的库。 |
7
renmu123 2022-09-20 18:16:44 +08:00
起多进程,然后内容平分给每个进程来处理
|