xsl-list
[Top] [All Lists]

[xsl] ($possibly-empty, $default)[1] idiom optimisation

2010-03-24 05:21:46
Hi,

This is often used as a nice way to avoid an if-then-else check to
display $default if $possibly-empty is empty:

($possibly-empty, $default)[1]

Out of interest, is it likely to be optimised to avoid evaluating
$default if the first item is not empty, because if $default takes a
reasonable amount of work to evaluate it's effectively wasted most of
the time (if $default is rare).  If it takes more work to evaluate
$default than to test whether $possibly-empty is empty each time, then
this is just a short cut rather than good practice.

It reminds me of advice I heard (for Java) to wrap all log statements
in an if test to check the log level first to avoid the unnecessary
creation of the log message.  For example, constructing a large
message for a debug log by combining several different things, only
for the constructed string to be discarded because the log level is
info. (testing the log level a 1000 times is far better than creating
and discarding 1000 strings)


-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>