Slow Init

0 views
Skip to first unread message

Matt

unread,
Jul 11, 2008, 1:22:57 PM7/11/08
to transfer-dev
I have put together a small test script to try out Transfer. I has 2
objects each with just a few fields.

This code;
<cfset application.transferFactory =
CreateObject("component","transfer.TransferFactory").init(argumentCollection=transferConfig)>

is taking about 40 seconds to complete when CFs cache expires or we go
into CFIDE/admin and manually clear it. Having Transfer clear its
cache, setting the application cache timeout low (10 seconds, for
example), clearing stucts, etc. does not cause it to happen again.

What is causing this slow down, and can it be remedied? My hunch is
that it is just the time the CF server needs to cache all the CFCs
etc. for Transfer, but I thought i'd ask.

I have even tried it with no objects defined with the same delay.

Specifics;
Transfer ver 1.0RC
Coldfusion 8.0.1
Windows 2003 advance server
Microsoft SQL

Brian Kotek

unread,
Jul 11, 2008, 1:37:11 PM7/11/08
to transf...@googlegroups.com
Are you using Java 1.6? There is a known classLoader bug in it that can cause slow startup of CFC-heavy applications.

Also, do you have "report execution times" checked in the CF Administrator's debugging page? If so, uncheck it.

Matt

unread,
Jul 11, 2008, 4:05:59 PM7/11/08
to transfer-dev
Thank you for the response.

We tried unchecking "report execution times" and that didn't help.

However, we have Java 1.6.0_04 on the server. It looks like the
newest version is 1.6.0_07 I haven't had a chance to try that yet.


On Jul 11, 1:37 pm, "Brian Kotek" <brian...@gmail.com> wrote:
> Are you using Java 1.6? There is a known classLoader bug in it that can
> cause slow startup of CFC-heavy applications.
>
> Also, do you have "report execution times" checked in the CF Administrator's
> debugging page? If so, uncheck it.
>

Brian Kotek

unread,
Jul 11, 2008, 4:39:58 PM7/11/08
to transf...@googlegroups.com
I guarantee that unchecking report execution times will have sped up processing by a factor of 100 times, and probably more like 1000 times. To avoid the classLoader bug you would have to revert to Java 1.5, since Sun doesn't plan to fix the bug until 1.6.0_11 which is targeted for November I believe.

Dan Wilson

unread,
Jul 11, 2008, 4:42:59 PM7/11/08
to transf...@googlegroups.com
I thought I would chime in here. Mike Brunt mentioned something interesting today on the ModelGlue list about the differences in the JVM versions. I'll paste it here:



Cheryl, it sounds as if your performance issue is now solved am I
correct about that?  I also wondered if you had applied any tuning to
the JVM?  Lastly, it is true that there are instantiation gains by
rolling back to Java 1.5 however our extensive load-tests have proven
that there is a 15-20% degradation in ongoing operation in the 1.5 JVM
as opposed to 1.6.  The 1.6 JVM is much more efficient in our
experience with many, clients after all classes are instantiated.
--
"Come to the edge, he said. They said: We are afraid. Come to the edge, he said. They came. He pushed them and they flew."

Guillaume Apollinaire quotes

Brian Kotek

unread,
Jul 11, 2008, 4:55:28 PM7/11/08
to transf...@googlegroups.com
That is true, you're trading slower overall application performance for faster initialization time if you use Java 1.5.

David Mineer

unread,
Jul 11, 2008, 11:54:43 PM7/11/08
to transf...@googlegroups.com
I got the 1.6 update 7 today on my dev machine and I don't get the
error like before when I first load my app. I had heard that the
class loader bug might be fixed in update 7 towards the end of summer.

Is it fixed?

--
David Mineer Jr
---------------------
The critical ingredient is getting off your
butt and doing something. It's as simple
as that. A lot of people have ideas, but
there are few who decide to do
something about them now. Not
tomorrow. Not next week. But today.
The true entrepreneur is a doer.

Brian Kotek

unread,
Jul 12, 2008, 12:10:03 PM7/12/08
to transf...@googlegroups.com
No, it isn't set to be fixed until update 10:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6566201

Brian G

unread,
Jul 16, 2008, 1:12:09 AM7/16/08
to transfer-dev

On Jul 11, 10:55 pm, "Brian Kotek" <brian...@gmail.com> wrote:
> That is true, you're trading slower overall application performance for
> faster initialization time if you use Java 1.5.
>

In my experience, this is only true on a warm reinit. If you can
control your server and can do a full server bounce, this does not
appear to be as much of an issue:

http://www.ghidinelli.com/2008/07/01/coldfusion-8-classloader-bug-less-prevalent-on-cold-starts/

I don't know the technical reason for the discrepancy but I can
reproduce it reliably. It does make it much less convenient for
development work but it doesn't require going down to 1.5.


Brian
Reply all
Reply to author
Forward
0 new messages