Re: [O] Very slow execution, tangling and export with noweb and quick-and-dirty
Rainer M Krugwrites: > Hi > > I have a rather extensive literate programming document with several > hundred code blocks. In two subtrees, I use :noweb. Each of these has one > noweb block which is located onder the first level header, and used several > times in the sub-sections of this tree. > > But even with the quick-and-dirty option > > , > | #+BIND: org-babel-use-quick-and-dirty-noweb-expansion "t" > ` > Hm - I just realised that despite having this #+BIND: in the file, the variable was not set. I set it manually now, and it is fast again. Shouldn't this BIND set the variable to true? Rainer > execution, tangling and export takes very long (one block about 12 > seconds, of which about 2 seconde=s max execution time of the code block). > > Is this a general problem of noweb expansion? How can I make this > faster? > > I really want to use the noweb, because the block is rather dynamic and > used several times in the subrtree. > > Below the report from the profiler. > > Any suggestions welcome, > > Rainer > > > , > | - command-execute2024 90% > | - call-interactively2024 90% > | - org-ctrl-c-ctrl-c1966 88% > |- run-hook-with-args-until-success1966 88% > | - org-babel-execute-safely-maybe 1966 88% > | - org-babel-execute-maybe 1966 88% > | - org-babel-execute-src-block-maybe1966 88% > |- org-babel-execute-src-block 1966 88% > | - org-babel-expand-noweb-references 1890 84% > | - org-babel-get-src-block-info 1884 84% > | - org-babel-parse-src-block-match 1680 75% > |- org-babel-params-from-properties1667 74% > | - mapcar 1602 71% > | - #1601 71% > | - org-entry-get1598 71% > |- org-entry-get-with-inheritance 1576 70% > | - byte-code 1575 70% > | - org-up-heading-safe 1006 45% > | - org-back-to-heading 109 4% > |- outline-back-to-heading 56 2% > | outline-on-heading-p 7 0% > | org-outline-level 61 2% > | - org-property--local-values 515 23% > | - org-get-property-block351 15% > |- org-back-to-heading 69 3% > | - outline-back-to-heading 46 2% > |outline-on-heading-p 9 0% > | org-before-first-heading-p45 2% > | member-ignore-case 5 0% > |+ org-entry-properties 2 0% > | + org-entry-get50 2% > | + org-babel-parse-header-arguments 11 0% > | org-babel-combine-header-arg-lists1 0% > | byte-code 1 0% > |+ org-babel-parse-header-arguments 5 0% > |+ apply 4 0% > |+ org-unescape-code-in-string2 0% > | generate-new-buffer1 0% > | match-string-no-properties 1 0% > | + org-babel-generate-file-param 201 9% > | + org-babel-where-is-src-block-head 1 0% > | + org-babel-ref-goto-headline-id 2 0% > | + org-babel-execute:R 58 2% > | + org-babel-get-src-block-info 10 0% > | + run-hooks 7 0% > | + org-babel-insert-result 1 0% > | + smex 58 2% > | + ... 200 8% > | + timer-event-handler 4 0% > | + redisplay_internal (C function) 2 0%
Re: [O] Very slow execution, tangling and export with noweb and quick-and-dirty
Rainer M Krugwrites: > Rainer M Krug writes: >> I have a rather extensive literate programming document with several >> hundred code blocks. In two subtrees, I use :noweb. Each of these has >> one noweb block which is located onder the first level header, and >> used several times in the sub-sections of this tree. >> >> But even with the quick-and-dirty option >> >> , >> | #+BIND: org-babel-use-quick-and-dirty-noweb-expansion "t" >> ` > > Hm - I just realised that despite having this #+BIND: in the file, the > variable was not set. I set it manually now, and it is fast again. > > Shouldn't this BIND set the variable to true? IIUC, `BIND' sets the variable to the value you're giving to it at export-time only (in the temporary buffer created for the export process). Best regards, Seb -- Sebastien Vauban
[O] Very slow execution, tangling and export with noweb and quick-and-dirty
Hi I have a rather extensive literate programming document with several hundred code blocks. In two subtrees, I use :noweb. Each of these has one noweb block which is located onder the first level header, and used several times in the sub-sections of this tree. But even with the quick-and-dirty option , | #+BIND: org-babel-use-quick-and-dirty-noweb-expansion "t" ` execution, tangling and export takes very long (one block about 12 seconds, of which about 2 seconde=s max execution time of the code block). Is this a general problem of noweb expansion? How can I make this faster? I really want to use the noweb, because the block is rather dynamic and used several times in the subrtree. Below the report from the profiler. Any suggestions welcome, Rainer , | - command-execute2024 90% | - call-interactively2024 90% | - org-ctrl-c-ctrl-c1966 88% |- run-hook-with-args-until-success1966 88% | - org-babel-execute-safely-maybe 1966 88% | - org-babel-execute-maybe 1966 88% | - org-babel-execute-src-block-maybe1966 88% |- org-babel-execute-src-block 1966 88% | - org-babel-expand-noweb-references 1890 84% | - org-babel-get-src-block-info 1884 84% | - org-babel-parse-src-block-match 1680 75% |- org-babel-params-from-properties1667 74% | - mapcar 1602 71% | - #1601 71% | - org-entry-get1598 71% |- org-entry-get-with-inheritance 1576 70% | - byte-code 1575 70% | - org-up-heading-safe 1006 45% | - org-back-to-heading 109 4% |- outline-back-to-heading 56 2% | outline-on-heading-p 7 0% | org-outline-level 61 2% | - org-property--local-values 515 23% | - org-get-property-block351 15% |- org-back-to-heading 69 3% | - outline-back-to-heading 46 2% |outline-on-heading-p 9 0% | org-before-first-heading-p45 2% | member-ignore-case 5 0% |+ org-entry-properties 2 0% | + org-entry-get50 2% | + org-babel-parse-header-arguments 11 0% | org-babel-combine-header-arg-lists1 0% | byte-code 1 0% |+ org-babel-parse-header-arguments 5 0% |+ apply 4 0% |+ org-unescape-code-in-string2 0% | generate-new-buffer1 0% | match-string-no-properties 1 0% | + org-babel-generate-file-param 201 9% | + org-babel-where-is-src-block-head 1 0% | + org-babel-ref-goto-headline-id 2 0% | + org-babel-execute:R 58 2% | + org-babel-get-src-block-info 10 0% | + run-hooks 7 0% | + org-babel-insert-result 1 0% | + smex 58 2% | + ... 200 8% | + timer-event-handler 4 0% | + redisplay_internal (C function) 2 0% | + flyspell-post-command-hook2 0% ` -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax
Re: [O] Very slow execution, tangling and export with noweb and quick-and-dirty
Sebastien Vaubanwrites: > Rainer M Krug writes: >> Rainer M Krug writes: >>> I have a rather extensive literate programming document with several >>> hundred code blocks. In two subtrees, I use :noweb. Each of these has >>> one noweb block which is located onder the first level header, and >>> used several times in the sub-sections of this tree. >>> >>> But even with the quick-and-dirty option >>> >>> , >>> | #+BIND: org-babel-use-quick-and-dirty-noweb-expansion "t" >>> ` >> >> Hm - I just realised that despite having this #+BIND: in the file, the >> variable was not set. I set it manually now, and it is fast again. >> >> Shouldn't this BIND set the variable to true? > > IIUC, `BIND' sets the variable to the value you're giving to it at > export-time only (in the temporary buffer created for the export > process). OK - now I understand it. So I should also, in addition to the bind, use a file local variable to set org-babel-use-quick-and-dirty-noweb-expansion to true. Done and working. Thanks, Rainer > > Best regards, > Seb -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D):+49 - (0)3 21 21 25 22 44 email: rai...@krugs.de Skype: RMkrug PGP: 0x0F52F982 signature.asc Description: PGP signature