RE: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Ian Skinner
Just curious, is there a significant (aka quite noticeable) performance hit 
when using recursive custom tags? I define recursive as being same tag called 
within itself.

I would presume it would depend on the performance of the tag in question as 
well as its penchant to create endless recursion; which definitely has 
performance implications, oh HOW I know it has performance implications.  IE, 
this is a great way to bring a server to a screeching halt!


--
Ian Skinner
Web Programmer
BloodSource
www.BloodSource.org
Sacramento, CA

┌─┬─┐
│1│ │
├─┼─┤
│ │ │
└─┴─┘
 
C code. C code run. Run code run. Please!
- Cynthia Dunning



~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229938
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


Re: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Barney Boisvert
There is some overhead for making a custom tag call, so if you have
recursion (or iteration) across a call, you'll have to pay that
overhead each time.  I'd say it's nothing to worry about until you
notice it as a problem when you're doing load testing.

If you're running on CFMX, however, I'd look into wrapping the
functionality in a CFC or UDF instead of a custom tag though. 
Functions are better suited to recusion, if you ask me, and they're
probably a bit more performant, but that's just a guess.

cheers,
barneyb

On 1/18/06, Ian Skinner [EMAIL PROTECTED] wrote:
 Just curious, is there a significant (aka quite noticeable) performance hit 
 when using recursive custom tags? I define recursive as being same tag called 
 within itself.

 I would presume it would depend on the performance of the tag in question as 
 well as its penchant to create endless recursion; which definitely has 
 performance implications, oh HOW I know it has performance implications.  IE, 
 this is a great way to bring a server to a screeching halt!


 --
 Ian Skinner

--
Barney Boisvert
[EMAIL PROTECTED]
360.319.6145
http://www.barneyb.com/

Got Gmail? I have 100 invites.

~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229941
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


RE: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Jim Davis
 -Original Message-
 From: Barney Boisvert [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, January 18, 2006 5:18 PM
 To: CF-Talk
 Subject: Re: Significant Performance Hit on Recursive Custom Tags?
 
 There is some overhead for making a custom tag call, so if you have
 recursion (or iteration) across a call, you'll have to pay that
 overhead each time.  I'd say it's nothing to worry about until you
 notice it as a problem when you're doing load testing.
 
 If you're running on CFMX, however, I'd look into wrapping the
 functionality in a CFC or UDF instead of a custom tag though.
 Functions are better suited to recusion, if you ask me, and they're
 probably a bit more performant, but that's just a guess.

I agree with Barney here with one reminder: remember that you can put
functions inside custom tags.  Not many people seem to remember that.

I've found that most recursive tags could be remodeled quite easily with
internal recursive functions.  A function in a tag is contained within it -
there's no exposure to the rest of the template or really any downside that
I can see.

I've done no testing to back up the claim but I would say that recursive
functions would be much faster/less-resource-intensive that tags.  Tags
maintain a lot of references (the caller chain, the tag nesting chain, etc)
not maintained by functions and so forth.

Jim Davis



~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229947
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


Re: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Barney Boisvert
 Tags
 maintain a lot of references (the caller chain, the tag nesting chain, etc)
 not maintained by functions and so forth.

UDFs and CFC methods maintain all of this as well, if you have
execution times enabled in the debugging output, but they don't expose
it to the request in process.  Kind of off the topic now, but if
you've got more than a small handful of UDF/method calls in your app,
make sure you've got the execution times section of the debugging
output disabled, or you'll see a HUGE decrease in performance.  Like
with 100 calls you'll be measuring the decrease in full seconds.

If that's disabled, then none of it's maintained, and things should be
lickety-split.

cheers,
barneyb

On 1/18/06, Jim Davis [EMAIL PROTECTED] wrote:
 I agree with Barney here with one reminder: remember that you can put
 functions inside custom tags.  Not many people seem to remember that.

 I've found that most recursive tags could be remodeled quite easily with
 internal recursive functions.  A function in a tag is contained within it -
 there's no exposure to the rest of the template or really any downside that
 I can see.

 I've done no testing to back up the claim but I would say that recursive
 functions would be much faster/less-resource-intensive that tags.  Tags
 maintain a lot of references (the caller chain, the tag nesting chain, etc)
 not maintained by functions and so forth.

 Jim Davis


--
Barney Boisvert
[EMAIL PROTECTED]
360.319.6145
http://www.barneyb.com/

Got Gmail? I have 100 invites.

~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229949
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


RE: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Baz
Barney,

 if you have execution times enabled in the debugging output

That's only if you have debugging enabled right?

Baz



~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229954
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


Re: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Barney Boisvert
Yeah, you have to have both enabled.

On 1/18/06, Baz [EMAIL PROTECTED] wrote:
 Barney,

  if you have execution times enabled in the debugging output

 That's only if you have debugging enabled right?

 Baz


--
Barney Boisvert
[EMAIL PROTECTED]
360.319.6145
http://www.barneyb.com/

Got Gmail? I have 100 invites.

~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229956
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54


RE: Significant Performance Hit on Recursive Custom Tags?

2006-01-18 Thread Dave Watts
 If you're running on CFMX, however, I'd look into wrapping 
 the functionality in a CFC or UDF instead of a custom tag though. 
 Functions are better suited to recusion, if you ask me, and 
 they're probably a bit more performant, but that's just a guess.

In CF 5, UDFs performed much better than analogous custom tags. However, I
haven't been able to detect any performance difference with CFMX 6.1.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/

Fig Leaf Software provides the highest caliber vendor-authorized
instruction at our training centers in Washington DC, Atlanta,
Chicago, Baltimore, Northern Virginia, or on-site at your location.
Visit http://training.figleaf.com/ for more information!


~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:229960
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
Donations  Support: http://www.houseoffusion.com/tiny.cfm/54