python编程是啥 为什么Python效率这么低,还这么火?
为什么Python效率这么低,还这么火?在许多情况下,性能不是瓶颈。大约80%的应用程序不需要高性能。如何优化Python爬虫的速度?您可以评估爬网程序是Io密集型还是CPU密集型。IO密集型:程序将
为什么Python效率这么低,还这么火?
在许多情况下,性能不是瓶颈。大约80%的应用程序不需要高性能。
如何优化Python爬虫的速度?
您可以评估爬网程序是Io密集型还是CPU密集型。
IO密集型:程序将大部分时间用于等待IO,如网络IO,即HTTP请求、磁盘IO,即文件读写等
CPU密集型:程序将大部分时间用于CPU计算,如文本处理、数值计算等
如果是IO密集型,然后您可以通过线程池或协程池来使用函数的这一部分来实现并发,从而提高了速度。
但是,这里的网络IO有一个前提。你的带宽不是你的爬虫的瓶颈。
如果这是CPU密集型的,那么这部分工作可以通过进程池(多进程)并行处理,从而提高速度。多处理意味着你的机器是多核的。
不过,还是有一些地方值得优化,比如一些库的选择,比如靓汤。虽然它非常方便,但是有更快的实现方法,比如selectolax,它要快得多。
如果你不能判断,先多线程,然后多进程。
如果单台机器无法解决,请使用工作队列,例如cell。多机并行,当然可以提高速度,而且是横向扩展,当然这也要让你的任务可以分布。
Python到底有多慢?
首先,我们用10个坐标点来模拟城市的位置。由于我们平时对Python的使用比较多,也比较熟悉,所以我们首先选择Python作为编程语言来实现蚁群算法,但是我们在第一时间就等着睡着了。猜猜看有多长时间,超过六分钟,这是效率的可怕之处。你不能让老师等6分钟在最后的回答中选择最佳路径。恐怕要暂停了。用C语言对蚁群算法进行了优化,优化结果不到1min。没有比较就没有坏处。在这之后,我深刻地认识到Python执行效率的可怕方面。
有些人可能想知道为什么C和Java比python更高效。事实上,它与语言的底层代码有关。C语言是汇编语言的二次开发,Java大多是C和C的二次开发,但是我们的Python可以分为两种情况,一种是Cpython,另一种是jpython,分别是C和Java的二次开发,所以效率比这两种语言要低。我看到消息说,为了解决python的效率问题,政府计划重新开发底层python代码。最近,我没有看到任何相关的新闻。毕竟,这个工作量是非常巨大的。