Re: [O] Very slow execution, tangling and export with noweb and quick-and-dirty

2015-09-01 Thread Rainer M Krug
Rainer M Krug  writes:

> 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

2015-09-01 Thread Sebastien Vauban
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).

Best regards,
  Seb

-- 
Sebastien Vauban




[O] Very slow execution, tangling and export with noweb and quick-and-dirty

2015-09-01 Thread Rainer M Krug
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

2015-09-01 Thread Rainer M Krug
Sebastien Vauban  writes:

> 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