Katz, Dov B \(IT\) wrote:
> You shouldn't need to take memory into consideration if you use a
> java.io.BufferedOutputStream  and java.io.PrintWriter etc...

Yes you should. Let's say we are writing 1.3 million, 20 character records from 
the database to a .csv. First CF queries the database and buffers the resultset 
(26 MB). In the proces it needs to convert from the database charset to its 
internal charset (26 MB, maybe 52 MB). Then you loop over the resultset and 
generate the .csv which you hold in memory (26 MB). In the process of your 6 
million loops you generate 8 bytes of whitespace for each iteration (10.4 MB). 
Then you write it out.

Of the total memory consumption of 94.4 MB (120.4 MB if you are unlucky with 
the charsets), using Java to write it out saves you 26 MB. And that is when we 
ignore the overhead of the different datatypes, with the overhead the numbers 
would probably be worse.

Jochem

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Create robust enterprise, web RIAs.
Upgrade & integrate Adobe Coldfusion MX7 with Flex 2
http://ad.doubleclick.net/clk;56760587;14748456;a?http://www.adobe.com/products/coldfusion/flex2/?sdid=LVNU

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:265029
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to