外链一经发布,即可永久留存
5元就可把锚文本外链发布到200个新闻网站

Python部署速度是否缓慢?探究Python执行效率为何略显低效

Python部署速度是否缓慢?探究Python执行效率为何略显低效

为何Python执行速度如此迟缓

Python运行速度迟缓的缘由众多,以下是一些可能的原因:

  • Python作为一门动态类型语言,每次执行时都需要经过解析,这使其运行速度相对较慢。

  • Python的解析器GIL(全局解释器锁)限制了多线程的并发执行,这也使得Python的运行速度显得较慢。

  • Python的内存管理机制可能引发一些性能问题。比如,Python采用引用计数来管理内存,意味着在删除一个对象时,只有当没有其他变量引用该对象时,才会释放内存。这可能会造成内存泄漏和其他性能问题。

python#pandas# 高效读取大量xlsx文件速度缓慢

喜讯传来,自pandas 2.2版本起,calamine引擎的引入为处理大型xlsx文件的效率问题带来了转机。升级至2.2.1版本后,我发现了一个新的引擎选项,特别适用于xlsx文件的读取。尽管数据规模在200万至800万行,约10列左右,之前用openpyxl的load_workbook进行只读操作并转存为csv,过程较为复杂,耗时几十秒尚可接受。

然而,xlsx_csv虽然读取速度较快,但无法自定义分隔符为 ,这在文本字段含有逗号的情况下会造成麻烦。我仍在寻求解决方案,尤其是面对大量文本数据和批量处理的需求。

追溯至2022年3月,我曾遇到读取大文件(每份约130Mb)的问题,特别是处理一个典型文件,包含584k行,15列,127Mb大小的xlsx,数据主要集中在Sheet1,14列为文本格式,1列为uint32。由于数据来源复杂,从合作伙伴的数据库导出后,xlsx格式并非标准,且无法直接要求他们转为csv。

在测试中,我记录了不同方法的执行时间:使用xlrd 1.2.0需8分钟10秒,xlrd3略有改进,3分钟17秒。openpyxl的load_workbook在只读和data_only=True的情况下,虽然初始读取速度较快,但后续转换为dataframe会明显变慢。pandas 1.4.1的read_xlsx engine=openpyxl耗时4分钟33秒。modin[ray]的读取速度理论上更快,但由于bug,只读部分数据,且输出格式为modin格式,需要额外转换。xlsx到csv的工具xlsx_csv和xlsx2csv中,xlsx2csv的转换时间更短,分别为11.6秒和2.5秒。

尽管有多种工具可供选择,但寻找最佳解决方案的过程仍在持续,尤其是对于modin DataFrame的转换,如果能将其转换为标准的pd.DataFrame,将大大提升处理效率。

赞(0)
以上所转载内容均来自于网络,不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2020@163.com,本人将予以删除。帮发锚文本外链网 » Python部署速度是否缓慢?探究Python执行效率为何略显低效