On 2021-11-15 04:38, Hans Hagen via ntg-context wrote:
On 11/15/2021 6:24 AM, Rik Kabel via ntg-context wrote:
Hello list,

Can anyone provide a description of, or a point to a description of, the differences between setups= and directsetup= for including setups? I searched the list archive and the documents and found nothing. (That may indicate my level of search foo, but nonetheless I am in need of help with this.)
\setup      : takes a list ({...} or [...])
\directsetup: supports gridsnapping, only one setup
\fastsetup  : the fastest, only one setup

concerning performance, i wonder if you'll notice it

\starttext
    \startsetups test
    \stopsetups

    \testfeatureonce{100000}{\setup      {test}} \elapsedtime \par
    \testfeatureonce{100000}{\setup      [test]} \elapsedtime \par
    \testfeatureonce{100000}{\directsetup{test}} \elapsedtime \par
    \testfeatureonce{100000}{\fastsetup  {test}} \elapsedtime \par
\stoptext

because often what's done in the setup is taking the time, just test

    \startsetups test
        {\bf}
    \stopsetups

you can volunteer to wikify it

Hans
Happy to wikify once I understand it.

On your empty performance test, I get around 0.10, .11, .08 for direct, and 0.4 for fast. With the grouped styling, those balloon to 0.50, 0.56, 0.48, and 0.44.

So, some follow-up questions:

1. What do you mean by "only one setup" in the description of
   directsetup and fastsetup? I have examples of using two different
   directsetup in one after key, so it does not seem to mean that.
2. What is meant by saying that directsetup supports gridsnapping? Do
   you mean that fastsetup does not? (If that is the case, should a
   module writer not use fastsetup because it might be used in a
   document that requires a grid?)
3. Is the support for {} and [] in setup simply to maintain legacy
   support for {}, or are there reasons to choose one over the other? I
   do see consistently faster times with the curlies.
4. Are there operations that are supported in directsetup that are not
   supported in setup or fastsetup? Are there operations supported in
   fastsetup that are not supported in setup or directsetup?
5. Is it fair to say that setup can do the most, directsetup a bit
   less, and fastsetup is the most restrictive? Except for the most
   performance-constrained documents, setup is a safe choice, but when
   constructing modules or performance tuning, the others might be tested?

--
Rik
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to