Re: PDF generation 4x slower in CF8?

2009-04-03 Thread Jordan Roher

No one else encountered this? Really?

The solution I came up with was to send PDF processing to another server 
running CF7. That server processes the CFDocument tag and sends back the file. 
Here's the custom tag I came up with to hand off and receive the data.

!---
TAG NAME AND PURPOSE
tag_pdfball by Jordan Roher, CorpDirect Agents, Inc.
Send a ColdFusion file to another server to be processed into a 
PDF.
Then store and return the location of said PDF.

HISTORY
March 30, 2009  Created

CONTACT
Jordan Roher
jordanro...@corpdirect.com

PARAMETERS
INPUT
name
requiredtypenotes

---
document
yes string  The saved content you want to 
generate as a PDF
server  
yes string  Full address to server and file 
you want to send this file to.
timeout 
no  number  How long, in seconds, should 
the server wait to get that PDF? Defaults to 60 seconds.
tempFolder  
no  string  Where should I put the 
temporary file I generate and the one received from the server? Defaults to 
caller.email_attach_path.

OUTPUT
name
always  typenotes

---
pdfball.okay
yes boolean Did it work?
pdfball.file
no  string  If successful, absolute path to the 
file received
pdfball.error   
no  string  If not successful, the error message 
returned from the other server

---
cfif ThisTag.executionMode IS start
cfscript
// Constants
null = ;  dot = .;  
slash = /;
backslash = \;semicolon = ;;
dash = -;
star = *; space =  ;
all = all;
one = one;comma = ,;
tab = chr(9);
newline = chr(13);  newline2 = chr(10); 
amp = ;

// Parameter collection and processing
universalParameters = 
document
,   timeout
,   tempFolder
,   server
;

// Remove newlines, spaces and tab characters
universalParameters = REReplace(universalParameters, 
[\s], null, all);

// Populate variables with null
for(i = 1; i LTE ListLen(universalParameters); i = i + 
1) {
if(NOT StructKeyExists(attributes, 
ListGetAt(universalParameters, i))) {
StructInsert(attributes, 
ListGetAt(universalParameters, i), null);
}
}

// General error checking
errorMessage = null;

if(attributes.document IS null) {
errorMessage = Document to generate not 
specified;
}

if(attributes.timeout IS null OR NOT 
IsNumeric(attributes.timeout)) {
attributes.timeout = 60;
}

if(attributes.tempFolder IS null AND 
IsDefined(caller.email_attach_path)) {
attributes.tempFolder = 
caller.email_attach_path;
}
if(NOT DirectoryExists(attributes.tempFolder)) {
errorMessage = Temporary folder not 
accessible;
   

PDF generation 4x slower in CF8?

2009-03-26 Thread Jordan Roher

I've been doing some performance test of ColdFusion 8 vs. 7 and have been 
stunned by what I've found for PDFs. I set up two identical Windows Server 2003 
virtual machines and have found CF8 generates PDF files about 4 times slower 
than CF7. This sample 100 page PDF takes 7-8 seconds to generate on CF7 and 
28-32 seconds on CF8.

Has anyone else noticed this issue? Or am I doing something really wrong?

CODE:

cfset tick = GetTickCount()
cfdocument format=pdf filename=RandomTask.pdf overwrite=true 
pagetype=letter margintop=1 marginbottom=1 marginleft=1 marginright=1
cfloop index=i from=1 to=100
cfdocumentsection
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN

html
head
titleUntitled/title
/head

body

pI am paragraph one./p
pI am paragraph two/p

/body
/html
/cfdocumentsection
/cfloop
/cfdocument
cfset tock = GetTickCount()
cfset time = tock-tick

cfoutputpMaking that huge PDF took #time#ms./p/cfoutput 

~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f

Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:320998
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4