You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yao f170c936d8
feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。
4 months ago
..
000 普通做法.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
010 多进程.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
020 多线程.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
030 协程.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
040 异步.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
readme.md feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago
util.py feat: 添加了根据关键词爬取天水市人民政府网站上指定日期内新闻标题的功能,并提供了多线程、多进程、协程和异步四种实现方式。 4 months ago

readme.md

目标

本节使用一个爬虫任务来展示如何追求代码的性能 。 充分理解线程、协程、进程、同步、异步、阻塞、非阻塞等概念,并能够根据具体场景选择合适的并发模型。 主线问题如何解决IO和计算速度不匹配、如何任务分解、分发和协作 。

任务

讨论分析

普通做法连续进行了五次测试时间分别为34.231s、34.091s、34.164s、34.226s、33.958s平均时间为34.134s 多进程(进程数=5连续进行了五次测试时间分别为7.719s、7.716s、7.690s、7.730s、7.711s平均时间为7.7132s 多线程(线程数=5连续进行了五次测试时间分别为7.185s、7.964s、6.983s、6.969s、7.035s平均时间为7.2272s 协程连续进行了五次测试时间分别为3.775s、3.807s、3.733s、3.824s、3.744s平均时间为3.776s 异步连续进行了五次测试时间分别为6.975s、7.675s、7.018s、7.032s、7.049s平均时间为7.1498s 注为保证公平性每一次Post请求后休眠3秒

可以看出,协程的性能最好,普通做法的性能最差,多线程、多进程和异步的性能介于两者之间。 考虑到多进程和多线程是故意开的5个进程和线程而协程是单线程所以协程的性能最好。 另外,异步的性能最差,可能是由于异步的并发模型需要频繁地切换线程,导致性能下降。 总的来说,协程的性能最好,多线程和多进程的性能介于两者之间,普通做法的性能最差。

总结

协程的性能最好,多线程和多进程的性能介于两者之间,普通做法的性能最差。