Re: CF vs ASP.NET! GET YOUR FRESH POPCORRRRN!!

2004-12-12 Thread Mike Kear
Regarding the relative costs of the expensive ColdFusion and the
free other technologies, I have  a statement from a colleague in
another organisation, which I'll be posting separately.  I told him
about a site I'd just about finished in ColdFusion and he told me he
was amazed.  That I'd done my site in about 70 hours with another
40hours or so to finish it , and he had done a similar site in Free
PHP - it had taken two of them (part time) two years to build.

Let's assume for the sake of argument that all people working on these
sites are costing $50/hour either as paid contractors or as employees
including on-costs.I built my site, using expensive ColdFusion
for $3500 plus a cold fusion server at perhaps $1200 - total $4700.

They built their site using free PHP for (say) two people at 600
hours each - that's $60,000!! But they got the server software for
free.

Saved a big bunch there by going with the 'free' one didn't they.

.Cheers
Mike Kear
Windsor, NSW, Australia
AFP Webworks
http://afpwebworks.com
.com,.net,.org domains from AUD$20/Year

~|
Special thanks to the CF Community Suite Gold Sponsor - CFHosting.net
http://www.cfhosting.net

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:187307
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: CF vs ASP.NET! GET YOUR FRESH POPCORRRRN!!

2004-12-12 Thread S . Isaac Dealey
I think you're a bit off...

I could be wrong, but it's been my impression that when a thread
finishes processing, it delivers any undelivered content from the
buffer immediately and then grabs up the next incoming http request.
So nobody's actually waiting for someone else's thread to finsih, just
their own. So in the case of being able to spawn as many threads as
you want within a request, your request would just be waiting for
whatever threads it spawned and then needed results from to continue.

 I wonder if using large numbers of concurrent threads is
 helping performance
 regarding web sites/apps in any case. If a server is
 processing 100 pages
 that all take the same time to deliver a limited queue
 would improve
 performance because the pages that have finished would be
 delivered in
 batches of 10 - i.e. they would already be available to
 the user. With 100
 concurrent threads all users would have to wait until all
 threads have
 finished working. So unlimited concurrent threads would
 not always guarantee
 better performance.
 Well, this is just what's been spinning in my head - it's
 late around here
 so correct me if I'm completely off.

 Cheers,

 Philipp


s. isaac dealey 954.927.5117
new epoch : isn't it time for a change?

add features without fixtures with
the onTap open source framework

http://www.sys-con.com/story/?storyid=44477DE=1
http://www.sys-con.com/story/?storyid=45569DE=1
http://www.fusiontap.com


~|
Special thanks to the CF Community Suite Silver Sponsor - RUWebby
http://www.ruwebby.com

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:187317
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: CF vs ASP.NET! GET YOUR FRESH POPCORRRRN!!

2004-12-12 Thread Jim Davis
 -Original Message-
 From: S. Isaac Dealey [mailto:[EMAIL PROTECTED]
 Sent: Sunday, December 12, 2004 11:33 PM
 To: CF-Talk
 Subject: RE: CF vs ASP.NET! GET YOUR FRESH POPCON!!
 
 I think you're a bit off...

I think that the original poster might be confusing two separate things
here: asynchronous calls and thread pooling.

CF has been doing thread pooling since it became truly multi-threaded in CF
3 or 4 (I forget which... but I think it was 3).

All this means is that a certain number of threads is set aside for handling
requests (the default is 10).  When a request comes in it's assigned to a
thread from the pool which runs it serially and returns.  If all threads are
active the request is queued and will be assigned the first available
thread.

As an aside the number of threads is only important in relation to your
application.  It should be clear that all active threads actually share the
resources of the box.  So, for example, if your application is highly
CPU-bound (a calculator of some time or a data processer) then it's
generally recommended that fewer threads be created.  This means that more
requests may have to wait, but that more processor time can be spread
amongst the relatively few threads - this ensures that once a request gets a
thread it finishes as fast as possible.

(Remember that in actual fact the CPU is essentially running in serial -
working on a small piece from each thread one after the other, not at the
same time.  Since thread management can consume significant resources you
want to set your thread count low enough where you're not spending more time
managing threads than completing your processing.)

By the same token if you're threads may spend a lot of idle time - for
example waiting for a web server or a database to respond you can up the
number of active threads.  Since they're only waiting for responses they're
not consuming significant resources on their own - so why not allow a lot of
them to put in their orders and wait instead of just a few?

Anyway, that's thread pooling.  We've had it forever and so has everything
else.

But the key point here is that within a thread everything runs in SERIAL -
it plods along one after the other.  A CF template can't call a database and
then output a timer while it's waiting for a response.  It must make the
call, then wait for the DB to respond and then continue.

Asynchronous calls (what Isaac was talking about originally) address this
problem.  This means simply that a single request can start something, then
do something else while the first thing is working.

Such processing isn't as necessary in web applications as in client-side
applications (for example, think how annoying it would be if you counld't
read email at the same time you were fetching new mail?) but can be very
useful in certain situations.

For example I've got a page that allows the user to fetch a PDF from the
server.  The page checks security permissions, writes and entry to a metrics
log file, then delivers the PDF.

In this case, as it is today, you musty get a response from the database to
continue to deliver the PDF.  But the metrics logging isn't critical to the
process (in this case at least) so why should it delay the customer request?

With an asynchronous call I could spawn a new thread to handle the
database entry and then immediately deliver the file.  The PDF thread would
continue even if the new logging thread failed or was slow for some reason.

From a single request I created two distinct, parallel processes that didn't
have to be dependent upon one another.

I'm not sure how this will be implemented in BlackStone - Isaac's post was
the first I'd heard of it.  But it is doable in Java (of course) and it
wouldn't be all that hard to create a CFC to kick something like this off in
CFMX (several people on this list have already done it I'm sure).

If they're going to standardize it in BlackStone, more power to them, but
HOW they're going to do it I'm not sure.  Will they only support orphaned
threads (threads which are created and launched but can't communicate back
to the parent thread) or will they support a more complete model.

As I said the actual practical uses for this kind of thing in a web
application aren't all that common (think of the really good CF or ASP
applications you've seen - none of them support this - I may be wrong, but I
don't think PHP supports it either).  So I would bet it will pretty
simplistic support, not a full thread management model, but that's just a
guess.

Jim Davis



~|
Special thanks to the CF Community Suite Silver Sponsor - CFDynamics
http://www.cfdynamics.com

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:187327
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

Re: CF vs ASP.NET! GET YOUR FRESH POPCORRRRN!!

2004-12-12 Thread Sean Corfield
On Mon, 13 Dec 2004 01:02:18 -0500, Jim Davis
[EMAIL PROTECTED] wrote:
 I'm not sure how this will be implemented in BlackStone - Isaac's post was
 the first I'd heard of it.  But it is doable in Java (of course) and it
 wouldn't be all that hard to create a CFC to kick something like this off in
 CFMX (several people on this list have already done it I'm sure).
 
 If they're going to standardize it in BlackStone, more power to them, but
 HOW they're going to do it I'm not sure.  Will they only support orphaned
 threads (threads which are created and launched but can't communicate back
 to the parent thread) or will they support a more complete model.

Go read Damon Cooper's blog - he goes into quite a bit of detail about
how this will work and, I believe, gives a code example.
-- 
Sean A Corfield -- http://www.corfield.org/
Team Fusebox -- http://www.fusebox.org/
Breeze Me! -- http://www.corfield.org/breezeme

If you're not annoying somebody, you're not really alive.
-- Margaret Atwood

~|
Special thanks to the CF Community Suite Silver Sponsor - New Atlanta
http://www.newatlanta.com

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:187328
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: CF vs ASP.NET! GET YOUR FRESH POPCORRRRN!!

2004-12-12 Thread Roger B.
 ASP.NET is taking market away from CF!

I doubt you can substantiate that. CF's market share appears to have shrunk
from the old 2.0 and 3.0 days, but there's been a lot more going on than
ASP.NET. In fact, ASP.NET is a minor blip on CF's radar when compared to the
giant swarm of open-source development platforms like PHP.

  I'm just trying to wake people up...

Why? Perhaps people know something about their businesses or clients that
you don't.

 CF is still 
 outrageous to purchase.

(1) Anyone who is price-conscious won't be using ASP.NET. They'll be using
PHP or Ruby on a Linux box.

(2) Anyone who is forced to pay an outrageous price for CF (those in need of
Enterprise features) is already paying much, much more for the development
and hosting of a large, complicated, and clustered application.


--
Roger Benningfield
JournURL: http://journurl.com/
blog: http://admin.support.journurl.com/  





~|
Special thanks to the CF Community Suite Silver Sponsor - New Atlanta
http://www.newatlanta.com

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:187279
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


<    1   2