Я поддерживаю программный пакет, который автоматизирует прием данных. Когда исходные данные импортируются, они отображаются и некоторые графики данных сохраняются на диск. К сожалению, функция print
значительно замедляет мою работу.Оптимизация функции печати в Matlab
Вот разбивка исполнения кода
Script Time
myscript 9.091s
uichoosefile 3.567s
print 4.178s
legend 0.751s
Только около 3/4s моего времени выполнения в режиме реального времени обработки и print
является самым большим timesink здесь.
Внутри print
две линии занимают почти 100% времени
Line Code Time
212 pj = pj = alternatePrintPath(pj); 3.173s
148 drawnow; 0.751s
Как я могу создать оптимизированную версию print
, не упираются этими двумя линиями? Простые процедуры оптимизации, такие как снижение разрешения графики, нежелательны.
'print' - это большая функция, которая делает много вещей. Как вы это называете? Просьба привести пример кода, который демонстрирует, что вы пытаетесь сделать. – horchler
Вам нужно сохранить графику в растровом формате (PNG, JPG или, тем не менее, экспортировать их), или вы можете просто сохранить файл .fig с помощью hgsave и перенести это на более поздний этап? – txpaulm
@txpaulm, к сожалению, у меня нет роскоши ограниченных векторных или растровых форматов. При попадании данных также выставляется файл конфигурации для клиента, который определяет, среди прочего, форматы доставки для графиков их данных, PNG, PDF, SVG, EPS и т. Д. Наиболее типичным сценарием является PDF + PNG.Печать очень затруднительна, когда команды выдаются во время ее выполнения, поэтому я не считаю, что откладывание экономии очень жизнеспособно; он может сломаться, если, например, оператор нажимает во время процедуры сохранения. –