python-3.x - Matplotlib savefig() 慢...只是事情的方式或想法加速?
问题描述
我有一些代码,我使用 MPL(不是 pyplot)imshow()
来显示一些数组,然后savefig()
将它们保存为 PNG 文件。
阵列的大小约为 3,000 x 4,000。
我的问题是保存需要很长时间 -每张图像大约需要 4 秒左右。
末节
- 数组是浮点数
- 我正在使用灰色的 cmap
- 我确保图形分辨率与图像相同,并且轴填充整个图形(因此 fig size * dpi 与数组的形状完全匹配)
- 我正在
imshow()
使用none
. - 在 macbook pro 上运行 - 但在其他任何东西上运行都差不多(假设 SSD)
缓慢似乎是由于CPU 瓶颈。使用time
环绕我的代码显示实际时间和用户时间大致相同,因此它似乎不是 IO 瓶颈。
但是,(非常奇怪!),如果我在多个进程中通过 Multiprocessing 运行代码,它似乎对整体实时性没有太大帮助(即使是 4 核)。
问题
- 保存到 PNG 大约需要 4 秒“正常”吗?
- 关于如何加快速度的任何提示或想法?
解决方案
从未尝试过,但我认为如果您有 Nvidia 显卡,您可以尝试使用 GPU(这可能更适合该过程)通过多处理运行代码。 https://documen.tician.de/pycuda/ 除此之外,我不认为你可以加快这个过程。
推荐阅读
- python - 我的数据集应该是一个大括号集/字典时显示一个字符串
- python - 未登录时如何让 DeepPavlov REST API 服务在 Linux 上运行
- php - 有没有办法创建一个友好的 url 像 site.com/state/127 并且仍然指向一个特定的文件像 index.php
- amazon-web-services - 在 AWS CodeBuild 容器中安装 Linux Homebrew
- eclipse-hono - 在同一台本地机器上连接 Eclipse Hono 和 Eclipse Ditto
- javascript - 在 Angular 应用程序中用 JaCoCo 替换 Cobertura
- python - 在 odoo12 中安装模块barcodes_generator_abstract 时出错
- python - 如何构建由多个子项目组成的python包?
- node.js - NodeJS:如何等待 runInNewContext 调用的异步脚本?
- authentication - signUpUrl 返回空指针异常