关于python多处理的初学者问题?
发布时间:2020-12-20 11:16:01 所属栏目:Python 来源:网络整理
导读:我在要处理的数据库中有许多记录.基本上,我想在文本字符串行的标记和结尾处运行几个正则表达式替换,然后将它们写回数据库. 我想知道多处理是否加快了执行此类任务所需的时间. 我做了一个 multiprocessing.cpu_count 它返回8.我尝试过类似的东西 process = []
我在要处理的数据库中有许多记录.基本上,我想在文本字符串行的标记和结尾处运行几个正则表达式替换,然后将它们写回数据库.
我想知道多处理是否加快了执行此类任务所需的时间.
它返回8.我尝试过类似的东西 process = [] for i in range(4): if i == 3: limit = resultsSize - (3 * division) else: limit = division #limit and offset indicates the subset of records the function would fetch in the db p = Process(target=sub_table.processR,args=(limit,offset,i,)) p.start() process.append(p) offset += division + 1 for po in process: po.join() 但显然,所花费的时间高于运行单个线程所需的时间.为什么会这样?有人请指教,这是一个合适的案例,或者我在这里做错了什么? 解决方法
以下是几个问题:
>在您的processR函数中,它是否一次从数据库中篡改大量记录,还是一次取出一行? (每次获取行都非常昂贵,性能明智.) 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |