----- Original Message -----
From: "Sam" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 11, 2001 10:21 AM
Subject: [JAVA3D] a CPU utilization question


> Hi,
>
> I want to decrease the CPU utilization of my Java 3D
application. I came
> across an answer to by problem  when I was going through the
Java 3D FAQ
> page and I have pasted it below:
>
>
> "How can I stop 100% CPU utilization?
>
> Java3D uses 100% CPU to gain maximum performance and number of
frames per
> second rendered. On games and many highly complex
applications, that leaves
> no time for user code to do stuff.
> To modify the priority of all the Java 3D threads running you
can use the
> static setJ3DThreadPriority() method. The values range from
> Thread.MIN_PRIORITY to Thread.MAX_PRIORITY .   "

The 100% CPU utilization is a characteristic of the
wakeupOnElapsedFrames(0) criterion.  If your application can run
acceptably with less than the maximum frame rate, you can
introduce a frame delay (via a Thread.sleep(dt))in one of the
methods such as preRender() of an extended Canvas3D.

There's some example code around in the list archives if you
search for mixed +mode.

My life-guidance on this matter appears in Cay S. Horstmann and
Gary Cornell, _Core Java 2_, Volume II:

"TIP:  If you find yourself tinkering with priorities to make
your code work, you are on the wrong track. . ."

The root of their caution is the OS-dependency in the VM's
implementations of thread priorities, but the parts of the VMs
and Java 3D in particular that handle small time increments are
just adjacent minefields.

Be careful out there,

Fred Klingener
Brock Engineering

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to