[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] speeding up Babel Gnuplot
From: |
Nicolas Goaziou |
Subject: |
Re: [O] speeding up Babel Gnuplot |
Date: |
Thu, 29 Dec 2016 21:04:50 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) |
Hello,
Thierry Banel <address@hidden> writes:
> Babel Gnuplot is quite slow on large tables.
> Example: 45 seconds for a 1500 rows table.
>
> Why? Because orgtbl-to-generic is too slow (or too generic). Its
> behavior seems to be quadratic O(size^2). Should we bypass it?
I don't think so.
> Should we try to optimize it?
I did some optimizations in master branch. I go below 1 sec for the 1500
rows table.
> Here is a fix to speed up the rendering to a mere fraction of a second.
>
> #+BEGIN_SRC elisp
> (defun org-babel-gnuplot-table-to-data (table data-file params)
> "Export TABLE to DATA-FILE in a format readable by gnuplot."
> (let ((org-babel-gnuplot-timestamp-fmt
> (or (plist-get params :timefmt) "%Y-%m-%d-%H:%M:%S")))
> (with-temp-file data-file
> (mapc (lambda (line)
> (mapc (lambda (cell)
> (insert (org-babel-gnuplot-quote-tsv-field cell))
> (insert "\t"))
> line)
> (insert "\n"))
> table)))
> data-file)
> #+END_SRC
The comparison is not fair, because the function doesn't handle all the
cases `orgtbl-to-generic' handles.
Regards,
--
Nicolas Goaziou