
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 |
2 passerby233 2022-09-19 15:31:41 +08:00 for line in rd: line = line.strip('\n') |
3 killva4624 2022-09-19 19:52:38 +08:00 readlines 会一次性把所有行读进去,换逐行读取。 |
4 zxCoder OP @killva4624 全读内存里不是会更快吗 |
5 HashV2 2022-09-19 22:49:37 +08:00 @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 起多进程,然后内容平分给每个进程来处理 |