【发布时间】:2015-12-17 22:48:04
【问题描述】:
我维护了一个自动提取数据的软件包。导入原始数据时,会对其进行绘图并将数据的一些图形保存到磁盘。不幸的是,print 函数大大降低了我的性能。
这里是代码性能的细分
Script Time
myscript 9.091s
uichoosefile 3.567s
print 4.178s
legend 0.751s
我的执行时间只有大约 3/4 秒是真正的处理时间,print 是这里最大的时间槽。
在print 内部,两行几乎占用了 100% 的时间
Line Code Time
212 pj = pj = alternatePrintPath(pj); 3.173s
148 drawnow; 0.751s
如何创建不受这两行限制的print 的优化版本?简单的优化例程(例如降低图形分辨率)是不可取的。
【问题讨论】:
-
print是一个可以做很多事情的大型函数。你怎么称呼它?请提供示例代码来演示您正在尝试执行的操作。 -
此时您是否需要将图形保存为光栅格式(PNG、JPG 或者您正在导出它们),或者您可以使用 hgsave 保存 .fig 文件并将其推迟到以后舞台?
-
@txpaulm 不幸的是,我没有限制矢量或光栅格式的奢侈。提取数据时,还会提取客户的配置文件,其中指定了数据图的交付格式,PNG、PDF、SVG、EPS 等。PDF+PNG 是最典型的场景。在执行过程中发出命令时打印非常有问题,所以我不认为推迟保存是非常可行的;它可能会破裂,例如操作员在保存例程期间单击。
标签: matlab optimization file-io graphics save