<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>ColdFusion Muse - Coldfusion Optimization</title>
			<link>http://www.coldfusionmuse.com/index.cfm</link>
			<description>Musings and Other Things from CF Guru Mark Kruger</description>
			<language>en-us</language>
			<pubDate>Thu, 02 Sep 2010 20:15:25 -0500</pubDate>
			<lastBuildDate>Tue, 20 May 2008 10:49:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>mkruger@cfwebtools.com</managingEditor>
			<webMaster>mkruger@cfwebtools.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>mkruger@cfwebtools.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>ColdFusion Muse</title>
				<link>http://www.coldfusionmuse.com/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>Webmaniacs Live - Mike Brunt and CF Server Tuning</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/5/20/optimization-mike-brunt</link>
				<description>
				
				&lt;p&gt;
	CF Optimization Guru Mike Brunt gave an awesome presentation on tuning ColdFusion. In a short 50 minutes he covered such topics as JVM configuration, multi-server install and load testing. It was an excellent overview. One recommendation (that he made in is lyric British access) was to install See Fusion or Fusion Reactor instead relying on the built in monitor. His take was that, because the monitor is running under ColdFusion, it is too easily become affect itself by performance - or perhaps could become part of the problem instead of being part of the solution.
&lt;/p&gt;
&lt;p&gt;
	I had thought, based on a presentation by Adam Lehman on CF 8 a year ago, that the monitor ran in a different JVM space than CF.  One of the things I have noticed with the monitor always shows a Flex gateway thread in the request monitoring. That thread is the monitor itself. So I&apos;m thinking Mike might be right. Perhaps the server monitor does exist &quot;inside&quot; of ColdFusion. I like the new server monitor and I&apos;ve found it useful. But I &lt;em&gt;really&lt;/em&gt; like SeeFusion&apos;s default view which shows requests and visuals of the heap on one page. I think it is a better aggregate of the things I want to know immediately when I&apos;m looking at a performance problem.
&lt;/p&gt;
&lt;h4&gt;Verbose Garbage Collection&lt;/h4&gt;
&lt;p&gt;
	Another excellent tip is a &quot;how to&quot; on enabling verbose garbage collection. This is easy to do. You simply add the following arguments to the JVM.config file and restart ColdFusion.

&lt;code&gt;
	-XX:+PrintGCDetails 
	-XX:+PrintGCTimeStamps 
	-XX:+PrintHeapAtGC -verbose:gc 
	-Xloggc:mylogname.log
&lt;/code&gt;
&lt;p&gt;
The information is going to be stored in a log file in the default logs directory (like /runtime logs). How would you use this? One of the best ways to use it is to figure out when new generation collection is going on, when tenure (old &quot;stop the world&quot;) collection is going on, and how much data is going from new to old. You can get a good picture of what is going on by examining this log information and using your imagination. Check out Mike&apos;s blog on &lt;a href=&quot;http://www.alagad.com/go/blog-entry/the-heart-of-the-matter-the-jvm&quot;&gt;GC tuning&lt;/a&gt; for a good outline of the process.
&lt;p&gt;
				
				</description>
						
				
				<category>Conferences</category>				
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Tue, 20 May 2008 10:49:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/5/20/optimization-mike-brunt</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Scheduled Task Performance</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/3/19/scheduled.tasks</link>
				<description>
				
				&lt;p&gt;
	So you have a template that runs fine when you are loading it into a browser but runs like a water buffalo on Percodan when it&apos;s run as a Coldfusion scheduled task? Here&apos;s a tip I saw on &lt;a href=&quot;http://www.houseoffusion.com&quot;&gt;CF-Talk&lt;/a&gt; that serves as a good reminder. Take a look at the debug settings. By default, debugging includes the address 127.0.0.1 (often called the &quot;loopback&quot; or &quot;local&quot; address). Coincidentally this is the very IP address that the Coldfusion Scheduler will report as the &lt;em&gt;calling&lt;/em&gt; address (cgi.remote_addr) - meaning the template in question will generate all of that lovely debug information. This can result in an otherwise acceptable level of performance turning painfully slow.  Muse rule of thumb - &lt;em&gt;disable debugging in production environments&lt;/em&gt;. Ok... so sometimes I enable it briefly to get some information when I&apos;m troubleshooting a specific process, but it should always be &lt;em&gt;off&lt;/em&gt; during normal operations. 
&lt;/p&gt;
&lt;p&gt;
Let me add as an anti-thesis, &lt;em&gt;turn on&lt;/em&gt; debugging in a development environment. It&apos;s surprising how many developers work without it. Personally, I spend more time looking at the debug info than the actual output. One of the first things you &lt;em&gt;should&lt;/em&gt; do when writing a new query for example, is check it out in the debug. How many records returned? How long did it take? Can I make it better? One of Coldfusion&apos;s  big advantages (in my view) is the copious amount of debug information provided for you with each request. Use it!
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Troubleshooting</category>				
				
				<pubDate>Wed, 19 Mar 2008 11:16:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/3/19/scheduled.tasks</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Coldfusion Optimization and the Windows Legacy</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/3/9/default.configuration.woes</link>
				<description>
				
				&lt;p&gt; 
	Coldfusion has been navigating the Internet waters in the good ship Java for some time now (6 or 7 years I think). If you are old enough in Internet years to remember Coldfusion 5 you probably know that Coldfusion was originally written for windows in C++ and ported over to Linux, Solaris and UNIX.  These ports were not reputed to be particularly good and Coldfusion was largely considered to be a windows server application (and probably justifiably so). In 2002 with &quot;CFMX&quot; Coldfusion offered the Web world an application that was &lt;em&gt;not&lt;/em&gt; just a windows application with a port to other platforms. Instead it was a &lt;em&gt;truly&lt;/em&gt; cross-platform effort. Since that time Coldfusion has found it&apos;s way onto Linux in increasing numbers. In fact we are seeing more Coldfusion on Linux than ever before - particularly users who need Coldfusion Enterprise. 
&lt;/p&gt;
&lt;p&gt;
	And why not? Coldfusion runs splendidly on Linux. We use CentOS at CF Webtools and it sings along happily with very few issues. In fact, it is possible to allocate about 50 percent more memory to the heap on a Linux machine (using the 32 bit JVM). That is a significant advantage that CF on Linux has over CF on windows. Here&apos;s a &lt;a href=&quot;http://www.stillnetstudios.com/2008/03/08/3gb-of-memory-for-coldfusion-on-linux/&quot;&gt;blog post&lt;/a&gt; by CF Webtools own Linux guru Ryan Stille on that topic. Meanwhile, here&apos;s a take on the server optimization from the good old days to today:
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Sun, 09 Mar 2008 20:35:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/3/9/default.configuration.woes</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Making String Comparisons Faster Using Javacast</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2007/11/30/javacast.comparto</link>
				<description>
				
				&lt;p&gt; 	
	In my &lt;a href=&quot;http://www.coldfusionmuse.com/index.cfm/2007/11/26/javacast.iterations&quot;&gt;Previous Post&lt;/a&gt; on the subject of variable comparison I tried to use JavaCast() to influece the comparison operator being used. I was attempting to keep Coldfusion from having to ask &quot;Is it a float&quot; or &quot;Is it a string&quot; or &quot;why doesn&apos;t Ray Camden ever win People&apos;s &apos;sexiest man alive&apos;&quot;.  I thought that if I could pre-cast variables into Java objects, Coldfusion could use that information to cut to the chase and &lt;em&gt;know&lt;/em&gt; exactly which operator to use without testing. Alas, that proved to be false hope. If you read the post you will already know that the difference between comparing typless and typed data in Coldfusion is not worth the effort.
&lt;/p&gt;
&lt;p&gt;
	Well as usual, smarter people than I (than me?) read this blog. The amazing &lt;a href=&quot;http://www.mkville.com/blog/&quot;&gt;Mark Mazelin&lt;/a&gt; (who&apos;s payment gateway API looks very interesting) suggested that I try to use the comparison operator directly, as in &quot;object.compareTo()&quot;. I sometimes forget about all the nifty methods and properties attached to these objects when they are created. I set about testing his idea.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Fri, 30 Nov 2007 16:28:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2007/11/30/javacast.comparto</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Multiple Garbage Collectors: Can Two Sanitation Engineers be Better Than One?</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2007/11/29/Coldfusion.Multiple.Garbage.Collection</link>
				<description>
				
				&lt;p&gt; 	
	I ran across this JVM configuration on a server recently. I should note that the server in question was having some issues, so this is &lt;em&gt;not an endorsement&lt;/em&gt; of this approach. I simply had not seen this sort of configuration on a Coldfusion server before. Here are the JVM arguments:
&lt;/p&gt;
&lt;code&gt;
java.args=-server -Xms512m -Xmx768m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:PermSize=64m -XX:NewSize=48m -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC ...
&lt;/code&gt;
What seemed unusual to me is that this particular set of arguments allows for 2 garbage collectors to be specified. Both the &quot;UseParNewGC&quot; switch and the &quot;UseConcMarkSweepGC&quot; switch are set. I did not know that multiple GCs could be specified. I set about finding out how this was possible.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Troubleshooting</category>				
				
				<pubDate>Thu, 29 Nov 2007 13:48:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2007/11/29/Coldfusion.Multiple.Garbage.Collection</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Iterations, Comparisons and JavaCast (Oh My)</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2007/11/26/javacast.iterations</link>
				<description>
				
				&lt;p&gt; 	
	Testing Gurus like Dave Watts and Robi Sen will tell you that iterative tests are only interesting in a passing academic sort of way. Indeed if you are testing a real world application don&apos;t bother setting up a fancy-pants loop with 50,000 iterations to see if you should use &quot;IS&quot; or &quot;EQ&quot;. If you are going to test then take the time to test real world operations in your application. But while we are on the subject of iterative tests I got to pondering what goes on under the hood. For example, what happens when you do &quot;var1 IS var2&quot; in a CFIF.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion 8</category>				
				
				<pubDate>Mon, 26 Nov 2007 15:13:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2007/11/26/javacast.iterations</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Ask-A-Muse: How Do I Use Client Variables?</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2007/1/23/client.variables</link>
				<description>
				
				&lt;div style=&quot;margin-left: 20px; border-left: 3px solid #CCCCCC; padding-left: 4px;&quot;&gt;
&lt;p&gt;&lt;em&gt;Muse Reader Asks:&lt;/em&gt;&lt;br&gt;
	We have a client variables database that is currently storing over 1.5 million records.  In the Coldfusion Administrator, client variables are set to purge every 90 days.  I was thinking of purging every 7 to 30 days to reduce the number of database entries and hopefully improve performance.  What are my options?
&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;padding-top: 15px;&quot;&gt;
	It&apos;s a good question. Performance depends on many thing including hardware, traffic, tuning, and capacity. Still, 1.5 million rows is a large table and as you might imagine it will perform less ably than a table with just a few hundred thousand rows. Lets talk about these variables and how they are used.
	
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Tue, 23 Jan 2007 13:22:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2007/1/23/client.variables</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Looking for Bottlenecks? Watch Out for Cfdirectory</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/10/25/cfdirectory.bottleneck</link>
				<description>
				
				&lt;p&gt;
I have a client with a file intensive application. It allows users to upload images and manage galleries. It&apos;s very slick and uses the flash uploader to accomplish multiple file uploads. He was having performance problems with the uploader. The flash uploader is a nifty way to upload a wheel-barrow full of files in a single operation. You can even check for things like file size and type &lt;em&gt;in advance&lt;/em&gt; instead of waiting for the whole file to arrive on the server. 
&lt;/p&gt;
&lt;p&gt;
	What we began to notice is that some requests took longer than others, &lt;em&gt;a lot longer&lt;/em&gt;.  I, being the expert troubleshooter that I am, naturally thought it was file sizes. I assumed that requests for a 2 meg file upload naturally took longer than requests that handled files of 200k.  When we looked closer, however, it turns out that was &lt;em&gt;not&lt;/em&gt; the case. A much more sinister culprit was lurking.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Troubleshooting</category>				
				
				<pubDate>Wed, 25 Oct 2006 19:36:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/10/25/cfdirectory.bottleneck</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Variables Scope Memory Leak (say it ain&apos;t so)</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/10/25/variables.memory.leak</link>
				<description>
				
				&lt;p&gt;
I just read this fabulous post from Mike Schierberl&apos;s blog on &lt;a href=&quot;http://www.schierberl.com/cfblog/index.cfm/2006/10/16/memoryLeak_variablesScope&quot;&gt;Variables Scope Leaking&lt;/a&gt; and I thought I would pass it on as a good read. To summarize, it is a common practice to create a component into the application scope and include an &quot;init()&quot; type function in it that returns an instance of itself. For example you might have an &quot;employee&quot; component who&apos;s &quot;init()&quot; function takes an employee id as an argument and returns an instance of &quot;employee&quot; populated with user data. That&apos;s pretty standard. If you return this new populated instance into the variables scope you would expect the variable to be discarded at the end of the request. Mike&apos;s post shows that this does not happen as expected. Because the variables returned are referenced (as apposed to &quot;by value&quot;) they persist beyond the request termination. 
&lt;/p&gt;
&lt;p&gt;
	As a fix you can add structClear(variables) to the end of your request - in the onRequestEnd() function for example.  I can&apos;t explain it better than Mike.  He includes a sample and a flash movie of how he came to his conclusions. It&apos;s very thorough.
&lt;/p&gt;
&lt;h4&gt;New Information From Robi Sen&lt;/h4&gt;
&lt;p&gt;
Robi Sen ran his own tests against the SUN JVM. He contests the assertion that this is a Coldfusion issue and he&apos;s focused on the JVM. His results may be found &lt;a href=&quot;http://www.therobisen.com/blog/&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(NOTE: Robi&apos;s blog has changed)&lt;/em&gt;&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Wed, 25 Oct 2006 12:29:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/10/25/variables.memory.leak</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Superfluous Data Binding Can be Good for You</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/8/23/superfluous.data.binding</link>
				<description>
				
				&lt;p&gt; 
	If you have read my previous posts on &lt;a href=&quot;http://mkruger.cfwebtools.com/index.cfm?mode=entry&amp;entry=C34E6F75-F938-F821-0813D1AAB006B26E&quot;&gt;&quot;Execution Plans&quot;&lt;/a&gt; and &lt;a href=&quot;http://mkruger.cfwebtools.com/index.cfm?mode=alias&amp;alias=no_cfqueryparam&quot;&gt;Data Binding&lt;/a&gt; you know I am a big believer in using Cfqueryparam for performance as well as security. Today I picked up a tip on this topic from &lt;a href=&quot;http://www.harelmalka.com/?m=200608&quot;&gt;harelmalka.com&lt;/a&gt; (a blog I had never read before). I had never considered it before, but a query with no &quot;WHERE&quot; clause does not using binding because it lacks the opportunity. Therefore, a statement like:
&lt;div class=&quot;code&quot;&gt;&lt;FONT COLOR=MAROON&gt;&amp;lt;CFQUERY ...&amp;gt;&lt;/FONT&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT * FROM Users&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR=MAROON&gt;&amp;lt;/CFQUERY&amp;gt;&lt;/FONT&gt;&lt;/div&gt;
Would not include a prepare statement and not hit the execution plan.  Hmmm.... The solution (originally detailed by &lt;a href=&quot;http://www.barny.org.uk/&quot;&gt;Barny&lt;/a&gt;) is to add a superfluous binding merely for the purpose of kicking off the &quot;prepare statement&quot; method. Like so:
&lt;div class=&quot;code&quot;&gt;&lt;FONT COLOR=MAROON&gt;&amp;lt;CFQUERY ...&amp;gt;&lt;/FONT&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT * FROM Users&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE 1 = &lt;FONT COLOR=MAROON&gt;&amp;lt;cfqueryparam cfsqltype=&lt;FONT COLOR=BLUE&gt;&quot;CF_SQL_INTEGER&quot;&lt;/FONT&gt; value=&lt;FONT COLOR=BLUE&gt;&quot;1&quot;&lt;/FONT&gt;&amp;gt;&lt;/FONT&gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT COLOR=MAROON&gt;&amp;lt;/CFQUERY&amp;gt;&lt;/FONT&gt;&lt;/div&gt;
That get&apos;s the job done nicely.
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion MX 7</category>				
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Wed, 23 Aug 2006 09:51:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/8/23/superfluous.data.binding</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Innovative Multi-Server Configuration Uses</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/7/5/multiserver.task.instances</link>
				<description>
				
				&lt;p&gt;
	Ben Forta posted &lt;a href=&quot;http://www.houseoffusion.com/cf_lists/message.cfm/forumid:4/messageid:245407&quot;&gt;this item&lt;/a&gt; on CF-Talk while discussing the nuances of moving to a multi-server instance. I thought it was a great illustration of some of the uses of CF Multi-server.  
&lt;/p&gt;
		&lt;div style=&quot;margin-left: 20px; border-left: 3px solid #CCCCCC; padding-left: 4px;&quot;&gt;
		

&lt;p&gt;&lt;em&gt;Ben Forta wrote:&lt;/em&gt;&lt;br&gt;

	It sounds like you are considering dedicated specialized instances, and I am a big fan of this. There is one customer I work with who has several sites in a single instance, like you do, but they have also created specific instances for specific needs. They have one that just does mailing, it receives requests from other instances, and process them. They have another which executes report requests on scheduled intervals. And another that builds Verity indexes when needed. These specialized instances require fewer threads, fewer data sources, no RDS and debugging (which you&apos;d never want enabled on production servers anyway), and so on. That works very well. Of course, you may also want separate instances for specific apps, but that is a separate discussion.
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
	I especially love the idea of a specialized instance for verity indexes. Re-indexing Verity collections is a huge resource hog, and larger collections can cause problems. I don&apos;t know why I never considered this approach before - very ingenious. 
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion MX 7</category>				
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Wed, 05 Jul 2006 14:01:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/7/5/multiserver.task.instances</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>You CAN Use the File System With Cfdocument (Who Knew)</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/5/30/cfdocument.file</link>
				<description>
				
				&lt;p&gt; In regard to my previous post on &lt;a href=&quot;http://mkruger.cfwebtools.com/index.cfm/2006/5/29/cfdocument.ssl&quot;&gt;Cfdocument and SSL&lt;/a&gt;
	I stand corrected. It &lt;em&gt;is definitely possible&lt;/em&gt; to use a &quot;file:&quot; protocol identifier in the image path when using Cfdocument. My problem was with the syntax. As is often the case, a helpful reader put me on the right path. Thanks to Julian Halliwell for pointing out that my problem was syntax.  I was trying 2 slashes as in:
&lt;div class=&quot;code&quot;&gt;&lt;FONT COLOR=NAVY&gt;&lt;FONT COLOR=PURPLE&gt;&amp;lt;img src=&lt;FONT COLOR=BLUE&gt;&quot;file://&lt;A TARGET=&quot;_blank&quot; HREF=&quot;d:\mysite&quot;&gt;d:\mysite&lt;/A&gt;\images\myimage.jpg&quot;&lt;/FONT&gt; width=&lt;FONT COLOR=BLUE&gt;&quot;50&quot;&lt;/FONT&gt; height=&lt;FONT COLOR=BLUE&gt;&quot;60&quot;&lt;/FONT&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/div&gt;
Julian noted that it should actually be 3 leading slashes after the &quot;file:&quot; protocol identifier.
&lt;div class=&quot;code&quot;&gt;&lt;FONT COLOR=NAVY&gt;&lt;FONT COLOR=PURPLE&gt;&amp;lt;img src=&lt;FONT COLOR=BLUE&gt;&quot;&lt;A TARGET=&quot;_blank&quot; HREF=&quot;file:///d:\mysite&quot;&gt;file:///d:\mysite&lt;/A&gt;\images\myimage.jpg&quot;&lt;/FONT&gt; width=&lt;FONT COLOR=BLUE&gt;&quot;50&quot;&lt;/FONT&gt; height=&lt;FONT COLOR=BLUE&gt;&quot;60&quot;&lt;/FONT&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt; Not only is this a rock solid fix for the SSL issue (see the previous post) but it has the potential to  dramatically impact the speed of your cfdocument call, especially if you using large images. We have an application that embeds fairly large photographic images.  I&apos;m guessing this will greatly increase the speed of rendering. I&apos;ll post a follow up and let you know.
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Tue, 30 May 2006 10:21:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/5/30/cfdocument.file</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Cfdocument and SSL</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/5/29/cfdocument.ssl</link>
				<description>
				
				&lt;p&gt; 
Some of you might have read my post on &lt;a href=&quot;http://www.coldfusionmuse.com/index.cfm/2006/2/16/cfdocument.performance&quot;&gt;Cfdocument Performance&lt;/a&gt;. One of the tips in that article is to watch out for external resources. If your HTML is pointing to images or css files (as opposed to &quot;in-line&quot; CSS), cfdocument will have to &quot;go get&quot; those files. The way it does this is important. The server does &lt;em&gt;not&lt;/em&gt; does not simply &quot;include&quot; the file (a la cfinclude). Instead, cfdocument impersonates a browser and uses HTTP. This has an impact on how you use Cfdocument. Each cfdocument call has the potential to generate many http requests. Here are the details.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Mon, 29 May 2006 11:06:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/5/29/cfdocument.ssl</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Limiting the Size of a POST Request</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/5/24/Limit.Post</link>
				<description>
				
				&lt;div style=&quot;margin-left: 20px; border-left: 3px solid #CCCCCC; padding-left: 4px;&quot;&gt;
&lt;p&gt;
	CF Muse Reader Asks:&lt;br&gt;
	With CF 7 is there a way to control the max file size on a upload? to prevent someone uploading a massive file? 
&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;
	Oh how I love easy questions. Yes Virginia you can do this but only &quot;globally&quot; through the CF Admin. Log into the CF Administrator and click on the &quot;settings&quot; link. There are 3 new settings that apply here. Here&apos;s the scoop from the release notes. &lt;ul&gt;
            &lt;li&gt;
              &lt;p&gt;Maximum size of post data (MB) - Limits the amount of data that can be posted to the server in a single request. Coldfusion rejects single requests larger than the specified limit. The default value is 100 MB. &lt;/p&gt;
            &lt;/li&gt;
            &lt;li&gt;
              &lt;p&gt;Request throttle threshold (MB) - Requests smaller than the specified limit are neither queued nor counted as part of the total memory. Requests larger than the specified limit are counted as part of total memory and are queued if the request throttle memory size has been exceeded. The default value is 4 MB.&lt;/p&gt;
            &lt;/li&gt;
            &lt;li&gt;Request throttle memory (MB) - Limits total memory size for the throttle. If there is not enough total memory available, Coldfusion queues requests until enough memory is free. The default value is 200 MB.&lt;/li&gt;
        &lt;/ul&gt;
The &quot;maximum size of post data&quot; is the one that you need to worry about.  It limits the amount of data that can be posted to Coldfusion. Keep in mind that if you expect a lot of this sort of activity the throttle memory will come into play. It&apos;s the total heap amount allocated to handle the throttle.
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Wed, 24 May 2006 14:05:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/5/24/Limit.Post</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>A Case for a Higher Default &quot;Simultaneous Request&quot; Setting</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2006/5/4/higher.simultaneous.requests</link>
				<description>
				
				&lt;p&gt;
	In a technote titled &lt;a href=&quot;http://www.adobe.com/go/tn_18540&quot;&gt;Coldfusion Performance Tuning&lt;/a&gt; that was last updated on March 7th 2003, the following advice was given regarding the &quot;simultaneous request&quot; setting in the Coldfusion administrator. The writer indicates that this setting has the largest impact on scalability, and then goes on to recommend a setting of 3 times the number of processors as a &quot;starting point&quot;. This number has been oft stated as the &quot;rule of thumb&quot;. I&apos;ve heard as 2 to 3 requests per processor and I&apos;ve often heard the number of 4 to 5 per processor, although I was unable to locate that recommendation in any online documents. I think this baseline recommendation should be changed to as high as 7 to 10 per processor for a CFMX server on a modern server (P4 or Xeon).  
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion MX 7</category>				
				
				<category>Coldfusion Optimization</category>				
				
				<pubDate>Thu, 04 May 2006 18:45:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2006/5/4/higher.simultaneous.requests</guid>
				
				
			</item>
			
		 	
			</channel></rss>