我必须使用cairo渲染一个非常大的图像(&gt;50.000²像素)。为了做到这一点而不耗尽内存我一个接一个地渲染图像的部分(<1.000²像素),然后将它们合并在一起。
因为cairos裁剪算法比我自己更快,所以第三步绘制整个图像,即使只有一部分是可见的。大多数CPU在步骤3中使用(通过python)。大部分内存用于步骤4(通过cairo)。
有没有办法加快速度?像这样的东西?
或
答案 0 :(得分:2)
首先,使用C或Vala代替Python可能会加快速度。
至于内存使用情况,我会尝试写入自己的流,而不是文件(请参阅write_to_png_stream)。这个可以允许你(我没有尝试这个)控制内存使用,假设Cairo在完成所有操作后只调用你的函数一次。