org-real-apply should only parse the buffer once
I really like the concept behind org-real, but find it unusably slow in my main todo.org file (which is 906K and 21,668 lines in size).
I found using the profiler that most of the time is spent in org-real-apply, which contains this code:
(while new-containers
(let ((primary (plist-get (car new-containers) :name))
(changes '())
old-containers)
(org-element-map (org-element-parse-buffer) 'link
My question here is why the whole buffer is being parsed for every element in new-containers? Should these traversals be flipped, since it's far slower to parse the Org buffer than it is to walk through a Lisp list? Or does the behavior of the element map change with each iteration?