# HG changeset patch # User Andreas Weber # Date 1406370191 -7200 # Node ID 4c45986a278e5768e43c0efa29e369f791430ee9 # Parent c9f9604415139b7a7bd31bcd85321133ba34fcd6 dump_demos.m: Check if file exists before demo and add timing. * dump_demos.m: Skip demo if output print file already exists. Add tic/toc timing for demo (calculation + plotting) and printing. This allows benchmarks and finding regressions which causes slow plotting or printing. diff -r c9f960441513 -r 4c45986a278e scripts/testfun/private/dump_demos.m --- a/scripts/testfun/private/dump_demos.m Sat Jul 26 10:09:48 2014 +0200 +++ b/scripts/testfun/private/dump_demos.m Sat Jul 26 12:23:11 2014 +0200 @@ -111,27 +111,31 @@ for d = 1:numel (demos) idx = sprintf ("%02d", d); base_fn = sprintf ("%s_%s", fcn, idx); + fn = sprintf ('%s.%s', base_fn, fmt); fprintf (fid, "\ntry\n"); + ## First check if the file already exists, skip demo if found + fprintf (fid, " if (! exist ('%s', 'file'))\n", fn); ## Invoke the ancient, deprecated random seed ## generators, but there is an initialization mismatch with the more modern ## generators reported here (https://savannah.gnu.org/bugs/?42557). fprintf (fid, " rand ('seed', 1);\n"); + fprintf (fid, " tic ();\n"); fprintf (fid, " %s\n\n", demos{d}); - fprintf (fid, " drawnow;\n"); + fprintf (fid, " t_plot = toc ();\n"); fprintf (fid, " fig = (get (0, 'currentfigure'));\n"); fprintf (fid, " if (~ isempty (fig))\n"); fprintf (fid, " figure (fig);\n"); - fprintf (fid, " name = '%s.%s';\n", base_fn, fmt); - fprintf (fid, " if (isempty (dir (name)))\n"); - fprintf (fid, " fprintf ('Printing ""%%s"" ... ', name);\n") - fprintf (fid, " print ('-d%s', name);\n", fmt); - fprintf (fid, " fprintf ('done\\n');\n"); - fprintf (fid, " else\n"); - fprintf (fid, " fprintf ('File ""%%s"" exists.\\n', name);\n") - fprintf (fid, " end\n"); + fprintf (fid, " fprintf ('Printing ""%s"" ... ');\n", fn); + fprintf (fid, " tic ();\n"); + fprintf (fid, " print ('-d%s', '%s');\n", fmt, fn); + fprintf (fid, " t_print = toc ();\n"); + fprintf (fid, " fprintf ('[%%f %%f] done\\n',t_plot, t_print);\n"); fprintf (fid, " end\n"); # Temporary fix for cruft accumulating in figure window. fprintf (fid, " close ('all');\n"); + fprintf (fid, " else\n"); + fprintf (fid, " fprintf ('File ""%s"" already exists.\\n');\n", fn); + fprintf (fid, " end\n"); fprintf (fid, "catch\n"); fprintf (fid, " fprintf ('ERROR in %s: %%s\\n', lasterr ());\n", base_fn); fprintf (fid, " err_fid = fopen ('%s.err', 'w');\n", base_fn);