speed up time filtering by 20X by loading all of metas into memory once instead of querying it item by item in a massive loop
This commit is contained in:
@@ -187,9 +187,10 @@ def main():
|
|||||||
# filter by time
|
# filter by time
|
||||||
if opt_time_filter:
|
if opt_time_filter:
|
||||||
mdb = get_metas()
|
mdb = get_metas()
|
||||||
|
kv = {k:v for k,v in mdb.items()} # read all of metas to memory at once, for efficiency
|
||||||
tnow = time.time()
|
tnow = time.time()
|
||||||
deltat = int(opt_time_filter)*60*60*24 # allowed time delta in seconds
|
deltat = int(opt_time_filter)*60*60*24 # allowed time delta in seconds
|
||||||
keep = [i for i,pid in enumerate(pids) if (tnow - mdb[pid]['_time']) < deltat]
|
keep = [i for i,pid in enumerate(pids) if (tnow - kv[pid]['_time']) < deltat]
|
||||||
pids, scores = [pids[i] for i in keep], [scores[i] for i in keep]
|
pids, scores = [pids[i] for i in keep], [scores[i] for i in keep]
|
||||||
|
|
||||||
# optionally hide papers we already have
|
# optionally hide papers we already have
|
||||||
|
|||||||
Reference in New Issue
Block a user