From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastien Vauban Subject: Performance of table computing Date: Tue, 31 Mar 2015 12:28:53 +0200 Message-ID: <86pp7p1mvu.fsf@example.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hello, In one of my Org files, I have 20 small tables. Among them, 11 have a line of formula's (TBLFM), mainly for computing a total (sum), so that's in essence relatively standard and simple. The file in itself is quite big (11,000 lines), but I did not expect to see that re-applying formulas to all of them would take 30 seconds... at every save... since I did add the following to my `.emacs' file: --8<---------------cut here---------------start------------->8--- (defmacro measure-time (message &rest body) "Measure the time it takes to evaluate BODY." `(let ((time (current-time))) ,@body (message "__%s (in %.02f s)___________________________" ,message (float-time (time-since time))))) (defun my/org-update-buffer () "Update all dynamic blocks and all tables in the buffer." (interactive) (when (derived-mode-p 'org-mode) (message "(Info) Update Org buffer %s" (file-name-nondirectory (buffer-file-name))) (sit-for 1.5) (let ((flyspell-mode-before-save flyspell-mode)) (flyspell-mode -1) ; Temporarily disable Flyspell to ; avoid checking the following ; modifications of the buffer. (measure-time "Updated all dynamic blocks" (org-update-all-dblocks)) (measure-time "Re-applied formulas to all tables" (org-table-iterate-buffer-tables)) (when flyspell-mode-before-save (flyspell-mode 1))))) ;; Make sure that all dynamic blocks and all tables are always up-to-date. (add-hook 'before-save-hook 'my/org-update-buffer) --8<---------------cut here---------------end--------------->8--- Is my observation shared? Best regards, Seb -- Sebastien Vauban