python 多种并行提高运行效率 痛定思痛。 2022-05-10 12:20 359阅读 0赞 一.使用np.vectorize 例子: import numpy as np def myfunc(a, b): if a>b: return a-b else: return a+b vfunc = np.vectorize(myfunc) t0=time.time() vfunc(np.random.randint(5,size=10000000), 2) t1=time.time() print('speed_times:'+str(t1-t0)) #speed_times:3.2735631465911865 t0=time.time() [myfunc(data, 2) for data in np.random.randint(5,size=10000000)] t1=time.time() print('speed_times:'+str(t1-t0)) #speed_times:7.929015398025513 优点: 并行执行快 缺点: 输出要求严格,这里myfunc只能返回一个值,如果是list,dict类型就不行了 二.使用ProcessPoolExecutor 在concurrent.futures 库中有ThreadPoolExecutor(多线程),ProcessPoolExecutor(多进程) ThreadPoolExecutor,ProcessPoolExecutor的区别: ThreadPoolExecutor: ThreadPoolExecutor多线程并行执行任务,可以共享当前进程变量,但缺点也很致命,由于python GIL(Global Interpreter Lock 全局解释器锁) 的原因,及时多线程,但其实仍然最多只能占用CPU一个核,准确只能说是并发了,如果指定的任务和线程数不恰当(比如一个任务很短,线程数量很多,导致线程频繁调用回收),那么效率还不如单线程 ProcessPoolExecutor: ProcessPoolExecutor可以使用多核进行计算,但缺点就是进程之间共享数据就比较麻烦,消耗更多的内存。 例子: 注意ProcessPoolExecutor使用的位置,否则会造成多进程循环调用,会报 concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending错误。 from concurrent.futures import ProcessPoolExecutor URLS = ['http://www.baidu.com', 'http://qq.com', 'http://sina.com'] def task(url, index,timeout=10): return index,url #在此例子中if __name__ == "__main__":一定要加,因为没有if __name__会在创建子进程的时候又会运行,导致错误 if __name__ == "__main__": p = ProcessPoolExecutor(max_workers=3) results = p.map(task, URLS,range(3)) p.shutdown(wait=True) for ret,url in results: print(ret,url)
相关 Java多线程性能优化:提高并行计算效率的方法示例 在Java中,多线程可以极大地提高程序的执行效率。以下是一些提高并行计算效率的方法: 1. **创建线程池**: 使用`ThreadPoolExecutor`来管理线程 爱被打了一巴掌/ 2024年09月11日 12:54/ 0 赞/ 11 阅读
相关 这样合并Python字典,可以让程序的运行效率提高4倍 现在提出一个问题:如何用一行代码合并两个Python字典,并返回合并结果。可能很多同学最先想到的是下面的代码: x = {'a': 1, 'b': 2} y 今天药忘吃喽~/ 2022年10月26日 11:30/ 0 赞/ 135 阅读
相关 几种提高计算机运行效率的优化方法 大家都知道,随着计算机上安装的软件越来越多,系统运行也越来越慢。当然,软件不能不装,但怎么个安装法和使用法,我们自己可以决定。 造成系统运行较慢的原因在于,系 深碍√TFBOYSˉ_/ 2022年08月24日 11:14/ 0 赞/ 244 阅读
相关 提高 Python 运行效率的几个方法 题外话:每日七点,大家一起分享技术相关文章,睡什么睡起来嗨! QQ群号:630300475 QQ群二维码: ![Image 1][]![Ima 偏执的太偏执、/ 2022年06月16日 01:44/ 0 赞/ 235 阅读
相关 如何提高python的运行效率/缩短运行时间 最近python刚刚入门不久,由于正好有要解决的问题,因此要用到python来做实验,感觉磕磕绊绊很多,所以自己也总结了一下前车之鉴。 python是一门解释性语言(高级语言 素颜马尾好姑娘i/ 2022年06月03日 06:23/ 0 赞/ 407 阅读
相关 提高IDL最短路径算法运行效率 前两天跑了一个最短路径,在找出需要搜索的点那放了两个循环,因此大约2分钟或者一分半出一张361\361的图,其实搜索的范围就这个图的一半,我当时觉得已经算是在降低运行时 向右看齐/ 2022年05月25日 07:13/ 0 赞/ 134 阅读
相关 python 多种并行提高运行效率 一.使用np.vectorize 例子: import numpy as np def myfunc(a, b): if a>b: return a-b else 痛定思痛。/ 2022年05月10日 12:20/ 0 赞/ 360 阅读
相关 提高程序运行效率的10个简单方法 出处: [提高程序运行效率的10个简单方法][10] 对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的 心已赠人/ 2022年01月13日 08:25/ 0 赞/ 287 阅读
相关 提高程序运行效率的10个简单方法 对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述 深碍√TFBOYSˉ_/ 2021年09月20日 03:26/ 0 赞/ 329 阅读
还没有评论,来说两句吧...