| float vs double : speed on P4 machine |
|
 |
Index ‹ java-programmer
|
- Previous
- 1
- Interesting Java interview questionA friend of mine likes to ask this question when interviewing Java
developers. Thought I'd pass it along because it's sort of interesting.
Why does the following compile, and what does the output look like?
System.out.println(new Object(){{{}}}.toString());
He says he has asked this question of several dozen people, and almost
everyone just stares at it in shock. Only one has answered it
correctly. I wish I had his resume...
dleifker
- 1
- Eclipse - background processes?Hi,
When I use Eclipse, there seem to be a lot of java.exe background
processes that are created when I run programs from the compiler. But
these background processes are not stopped when the programs are
stopped. Would anyone know how to stop these background processes?
Thanks,
Gil
- 1
- pasting images from excel with transparency have a black backgroundHi There,
I've searched on this topic, but have only found an unanswered post
from 2003. Basically, if I copy a chart from excel (well, from a
number of vector based packages it seems) that has transparency, the
resulting image in java has had the transparency replaced with black.
However, if you paste the chart into word, select it and then copy it,
it will paste into java with no problems.
I've searched the java bug database, but have had not luck.
To repeat this, simply create a chart in excel, set it's background to
fill:none and copy the chart. Then run the class below and press the
button.
I am running Office 2002 and using Sun JDK 1.5.07
Any help much appreciated on this as it's driving me nuts.
Thanks,
Brian
=============================================================
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
public class ClipboardTest
{
public static void main(String[] args)
{
try
{
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel label = new JLabel();
label.setPreferredSize(new Dimension(200, 200));
frame.add(label, BorderLayout.CENTER);
JButton button = new JButton("Get Clipboard");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
Transferable xfer =
Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
label.setIcon(new
ImageIcon((Image)xfer.getTransferData(DataFlavor.imageFlavor)));
}
catch (Exception ex) {}
}
});
frame.add(button, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
catch (Exception e){}
}
}
- 1
- a question about uploading files...I'm using jakarta.commons.FileUplaod to upload a file and it's working
fine (followed what I read in
http://www.onjava.com/pub/a/onjava/2003/06/25/commons.html?page=3)
only thing I would like to know is, is it possible to upload more than
one file at a time? (I mean is it possible to write code so in "choose
file" dialog you can select more than one file?)
I asked in jakarta.commons listserv (gmane.comp.jakarta.commons.user)
about two days ago, but well, still haven't gotten response (and am not
even sure whether this is strictly a jakarta.commons.FileUpload question
or a general java question..) thank you.. Frances
- 3
- J2EE Log File Monitoring SolutionI would like to build/use a J2EE solution to run on WebLogic 8.1 that will
monitor certain log files, extract data based on certain rules, and to
display them on a webpage.
The solution would probably have a front-end (JSPs/servlet(s)) that
communicates with one or more Servlets to specify the what data needs to be
extracted, and then the front-end would format this.
For example, I may be monitoring the log file from my application server
which may contain Java stack traces, and I may be interested in a particular
exception that occurred. In this case, I would want the front-end to tell me
when the error occurred, and possibly allow me to drill down to see the
relevant section of the log file.
In another case, I would be monitoring an XML file, and I would want to
extract certain bits of information from it, but with the option to extend
the monitoring system to display more pieces of information. I.e. today, I
may be interested in XML elements X,Y and Z, but tomorrow, the format of the
XML may change, and I would want to be able to adjust my front-end to deal
with this.
There will probably be no more than 10 log files being monitored, each of
which will not be more than 50MB. Usually, they will be more around the
1-10MB size. As mentioned, the monitoring system will need to run on
WebLogic 8.1, so any J2EE 1.4 or WebLogic 8.1-specific libraries can be
used.
Can anyone suggest some architectural approaches that could be used to
achieve this? Pointers to tools, libraries etc. would also be useful.
Thanks.
C3
- 5
- 6
- How do I finding the current static type?Dear Java Gurus,
I need to find out what the static type (a.k.a. compile time type) of
a given object is at runtime[1]. What I want to achieve is this:
public interface ClassA { public void f(); }
public interface ClassB extends ClassA {}
ClassA classA;
ClassB classB = new ClassBImpl();
classA = classB;
classB.f(); // does something
classA.f(); // does something else
classB and classA are referencing the exact same object and on this
object f() is called but they should not do the same since the static
types are different (ClassA for classA and ClassB for classB).
So, ClassBImpl should look something like:
public class ClassBImpl implements ClassB {
public void f() {
if (
static type in caller of this
is proper subtype of ClassA
) {
//do something
} else {
//do something else
}
}
}
I'm sure you're wondering now why the heck he wants to do something
stupid like that. The reason is that I'm working on a Eiffel to Java
compiler at the moment and there are situations where the f() from
ClassA denotes a completely different method as the f() in ClassB,
they just have the same signature. I can't convince Java that they are
not the same and Java does therefore always bind dynamically to the
most recent implementation which may be the wrong one in some cases.
I'm thinking about this problem like for two weeks now and I'm
completely stuck. You'll make my month if you have any idea how to
solve it no matter how far fetched the idea may be.
Thanks for your time,
Benno
[1] I know, objects do not have a static type, what I mean is the type
of the last variable that was referencing that object.
- 8
- Trouble with the driver and classes that work with the driver.this first part is the driver. need help with getting them both to work
with each other.
import java.util.Scanner;
public class AbbreviationsandStates
{
public static void main(String[] args)
{
String abbreIn;
String abbreOut;
String theResult;
EnterState es = new EnterState();
System.out.println("Enter Abbreviation the for the State : ");
Scanner in = new Scanner(System.in); //Instantiate Scanner
abbreIn = in.nextLine();
abbreOut = es.getAbbre(abbreIn);
theResult = es.getResult(abbreIn, abbreOut);
System.out.println(theResult);
}
}
this part is the class not sure what I am doing wrong but I do know that I
can not have an int for a string in the driver.
public class EnterState
{
public String getAbbre(String userInput)
{
userInput = userInput;
return userInput;
}
public int getResults(int abbre1, int abbre2)
{
String theResult;
switch (abbre1)
{
case 'A': case 'a':
switch (abbre2)
{
case 'L': case 'l':
System.out.print("Alabama");
break;
case 'K': case 'k':
System.out.print("Alaska");
break;
case 'Z': case 'z':
System.out.print("Arizona");
break;
case 'R': case 'r':
System.out.print("Arkansas");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'C': case 'c':
switch (abbre2)
{
case 'A': case 'a':
System.out.print("California");
break;
case 'O': case 'o':
System.out.print("Colorado");
break;
case 'T': case 't':
System.out.print("Connecticut");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'D': case 'd':
switch (abbre2)
{
case 'E': case 'e':
System.out.print("Delaware");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'F': case 'f':
switch (abbre2)
{
case 'L': case 'l':
System.out.print("Florida");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'G': case 'g':
switch (abbre2)
{
case 'A': case 'a':
System.out.print("Georgia");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'H': case 'h':
switch (abbre2)
{
case 'I': case 'i':
System.out.print("Hawaii");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'I': case 'i':
switch (abbre2)
{
case 'D': case'd':
System.out.print("Idaho");
break;
case 'L': case 'l':
System.out.print("Illinois");
break;
case 'N': case 'n':
System.out.print("Indiana");
break;
case 'A': case 'a':
System.out.print("Iowa");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'K': case 'k':
switch (abbre2)
{
case 'S': case 's':
System.out.print("Kansas");
break;
case 'Y': case 'y':
System.out.print("Kentucky");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'L': case 'l':
switch (abbre2)
{
case 'A': case 'a':
System.out.print("Louisiana");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'M':
switch (abbre2)
{
case 'E':
System.out.print("Maine");
break;
case 'D':
System.out.print("Maryland");
break;
case 'A':
System.out.print("Massachusetts");
break;
case 'I':
System.out.print("Michigan");
break;
case 'N':
System.out.print("Minnesota");
break;
case 'S':
System.out.print("Mississippi");
break;
case 'O':
System.out.print("Missouri");
break;
case 'T':
System.out.print("Montana");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'N':
switch (abbre2)
{
case 'E':
System.out.print ("Nebraska");
break;
case 'V':
System.out.print("Nevada");
break;
case 'H':
System.out.print("New Hampshire");
break;
case 'J':
System.out.print("New Jersey");
break;
case 'M':
System.out.print("New Mexico");
break;
case 'Y':
System.out.print("New York");
break;
case 'C':
System.out.print("North Carolina");
break;
case 'D':
System.out.print("North Dakota");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'O':
switch (abbre2)
{
case 'H':
System.out.print("Ohio");
break;
case 'K':
System.out.print("Oklahoma");
break;
case 'R':
System.out.print("Oregon");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'P':
switch (abbre2)
{
case 'A':
System.out.print("Pennsylvania");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'R':
switch (abbre2)
{
case 'I':
System.out.print("Rhode Island");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'S':
switch (abbre2)
{
case 'C':
System.out.print("South Carolina");
break;
case 'D':
System.out.print("South Dakota");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'T':
switch (abbre2)
{
case 'N':
System.out.print("Tennessee");
break;
case 'X':
System.out.print("Texas");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'U':
switch (abbre2)
{
case 'T':
System.out.print("Utah");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'V':
switch (abbre2)
{
case 'T':
System.out.print("Vermont");
break;
case 'A':
System.out.print("Virginia");
break;
default:
System.out.print("Invalid");
break;
}
break;
case 'W':
switch (abbre2)
{
case 'A':
System.out.print("Washington");
break;
case 'V':
System.out.print("West Virginia");
break;
case 'I':
System.out.print("Wisconsin");
break;
case 'Y':
System.out.print("Wyoming");
break;
default:
System.out.print("Invalid");
break;
}
break;
default:
System.out.print("Invalid");
break;
}
theResult = abbre1 + abbre2 + " The State is" ;
return theResult;
}
}
- 8
- video lectures on C, C++, Java and other programming and Computer science.Hi Friends,
Check here http://freevideolectures.com/computerscience.html for
video lectures on Programming languages like C, C++, Java, COBOL
etc.., OS, Algorithms, Data Structures, RDBMS,
Web designing, etc..........
It also has amazing collection of video lectures and animations on all
Engineering and Medical Sciences. I am sure you will be surprised to
see such great collection.
Do you like it???
- 9
- 12
- Using JMF to build rtsp serverHi, I'd like to know if it's possible to create a server application
that transmits a .rm file through rtsp. I've seen some examples using
AVI and other standard formats, but I'm not sure if this is possible.
Basically what I need is a server which waits for connections and
transmit a .rm file to it. Of course I could use Helix, but I need
something for free. In any case, is there any free alternative?
TIA.
- 13
- Including a folder's JAR files in CLASSPATHI have a folder C:\DevPrograms\Hibernate\lib which has 33 JAR files. I want
to include them in my CLASSPATH but not hardcoding the name of the jar
files; instead i want some thing like C:\DevPrograms\Hibernate\lib\*.jar so
that it can pick up all jar. I tried doing it but no success. What other
ways I can do it?
Thanks
- 13
- SimpleDateFormat problemHi, I'm beating my head against this with no avail.
Can someone tell me why this fails? The parsed date's getTime() has some
extra highorder bits set.
DateFormat df = new SimpleDateFormat("mm:ss:SSS");
String s = df.format(new Date(500));
assertTrue(df.parse(s).equals(new Date(500)));
Thanks!
- 13
- questions about the implications of multiple JFrames using dispose() on closingHi
I've come up against some perplexing questions caused by the creation
of multiple instances of JFrame.
obj is referencing a JButton click. This then loads a FileDialog for
opening an image and displaying it in an extended JFrame called
'ResizeFrame'. JFrame then loads a panel which displays the Image. The
code as it stands allows multiple instances of ResizeFrame.
ResizeFrame basically does most of the work and calls methods to load
the Image - which has been opened in it - to be drawn in ResizePanel.
ResizeFrame is coded to 'dispose' on closing.
What I am trying to understand is what happens when a frame is opened,
then closed, and then a new frame is opened. Does the instance of
ResizeFrame (all named the same) that was initially opened, still
exist, or has it been over-written by the new version.
Am I making a mistake allowing several JFrames to be opened at once? I
know that when a frame is disposed that its claims on screen resourses
are freed up - but if it is still existing even after it has been
disposed it must still be using some memory resources?
Also, what are the implications of having several objects existing with
the same name?
Another thing I've noticed. My ResizeFrame has a method for loading a
panel and then is made visible within ResizeFrame. What I've noticed is
that if I load a ResizeFrame Image, then close it, then open up the
same image file - that the picture will appear much faster than if I
open up a different image. I'm not understanding how this is happening!
I could change my code so that it is only possible to have 1
ResizeFrame open at a time - however this would require a considerable
amount of simplification (i.e. beyond my hackish skills!). I would only
do it if I am convinced that the way I have done things is BAD with a
capital B (which it probably is - but then I am a very inexperienced
programmer).
Thanks for any advice.
Michael
//-----------------------------
if (obj == newdepth) {
File f = loadimage("depth\\", FileDialog.LOAD);
if (!(f == null)) {
File q = new File(f.getParent());
if (q.isDirectory()) {
String w = f.getPath();
p.LoadPic(w);
ResizeFrame jeff = new ResizeFrame((w + " - Depth Map"), new
Color(205, 219, 227), false);
jeff.LoadPic(w);
jeff.addpanel();
}
else {
status.setText("invalid directory");
}
}
}
//--------------------------------
//--I've included the full code for ResizeFrame and ResizePanel hoping
for constructive critism. Also, it might help to make my questions
clearer.
//-----------ResizeFrame----------
import java.awt.*;
import javax.swing.*;
import myroot.frames.*;
import java.awt.event.*;
import java.io.*;
import java.awt.image.*;
import osbaldeston.image.BMP;
public class ResizeFrame extends JFrame implements ImageObserver {
public Image myimage;
public ResizePanel mypanel;
public Color col;
public boolean resizing;
public void LoadPic(String inpic){
myimage = null;
int typepic = getTypePic(inpic);
if (typepic == 1) {
BMP dave = new BMP(new File(inpic));
myimage = dave.getImage();
}
if (typepic == 2) {
myimage = Toolkit.getDefaultToolkit().getImage ( inpic);
}
WaitImage(myimage);
}
public int getTypePic(String in) {
if (in.length() > 4) {
String test = in.substring(in.length() - 4, in.length());
test = test.toLowerCase();
if (test.equals(".bmp")) return 1;
if (test.equals(".gif")|| test.equals(".png") ||
test.equals(".jpg") || test.equals("jpeg")) return 2;
}
return 0;
}
public void WaitImage(Image im) {
boolean wait = true;
wait = ImageUtilities.waitForImage(im, this);
}
public void addpanel() {
if (resizing == true)
setExtendedState(Frame.MAXIMIZED_BOTH);
mypanel = new ResizePanel(myimage, col);
JScrollPane scroller = new JScrollPane(mypanel,
//JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroller.getVerticalScrollBar().setUnitIncrement( 16 );
getContentPane().add(scroller);
if (resizing == false) {
int w;
int h;
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
if ((myimage.getWidth(this) +40) > d.width)
w = d.width;
else
w = myimage.getWidth(this) + 40;
if ((myimage.getHeight(this) +60) > (d.height -30))
h = d.height -30;
else
h = myimage.getHeight(this) + 60;
setSize(w,h);
}
setVisible(true);
//mypanel.repaint();
}
public void setSize(){
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setSize(d.width, d.height);
}
public ResizeFrame(String title, Color c, boolean res) {
super(title);
resizing = res;
col = c;
if (resizing == true) {
setSize();
}
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE );
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
}
}
//-------------------------
//---------ResizePanel--------
import java.awt.*;
import javax.swing.*;
import java.awt.image.*;
public class ResizePanel extends JPanel{
public Image myimage;
public Color col;
public ResizePanel(Image im, Color c) {
myimage = im;
col = c;
repaint();
}
public Dimension getPreferredSize(){
return (new Dimension(myimage.getWidth(this),
myimage.getHeight(this)));
}
public void paint(Graphics g) {
int h =0, v = 0;
h = (this.getWidth()-myimage.getWidth(this))/2;
v = (this.getHeight()-myimage.getHeight(this))/2;
if (h< 0)
h = 0;
if (v<0) v = 0;
g.setColor(col);
g.fillRect(0,0,this.getWidth(),this.getHeight());
g.drawImage(myimage, h,v, this);
}
}
//--------------------------
- 15
- annoying eclipse automatisms (resource copying)I really like Eclipse as Java editing platform, but now I want to do
the following:
I have a directory with not only self-written Java sources but also
some non-Java source files (namely parser/lexer constructed in
CUP/JLex). From this, I generate Java sources which land in the same
directory. Now when I build this directory from Eclipse it persists in
copying my non-Java sources to the output directory. While this
doesn't exactly cause any malfunction, it does disturb my cleanly
nature ;)
What options would you suggest to keep the structure clean? I think
setting up yet another directory for the CUP/JLex sources would be
rather impractical.
Thanks,
Justin
|
| Author |
Message |
charlesfox357

|
Posted: 2004-7-7 1:01:00 |
Top |
java-programmer, float vs double : speed on P4 machine
I'm writing some real-time numerical code which needs to be pretty
nippy. Should I be using float or doubles for my calculations? I
know my P4 is a 32bit processor, but I don't know if the JVM will end
up putting the 32bits of the floats into the 32bits of my processor,
or if it does something else. In C the 64double would take much
longer to run on a 32bit processor -- is this still the case with the
virtual machine?
|
| |
|
| |
 |
Liz

|
Posted: 2004-7-7 1:05:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
very simple to write a loop and test it yourself
let us know your results
for me, there was hardly any difference
i have celeron chip
"Charles Fox" <email***@***.com> wrote in message
news:email***@***.com...
> I'm writing some real-time numerical code which needs to be pretty
> nippy. Should I be using float or doubles for my calculations? I
> know my P4 is a 32bit processor, but I don't know if the JVM will end
> up putting the 32bits of the floats into the 32bits of my processor,
> or if it does something else. In C the 64double would take much
> longer to run on a 32bit processor -- is this still the case with the
> virtual machine?
|
| |
|
| |
 |
Lordy

|
Posted: 2004-7-7 1:44:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
email***@***.com (Charles Fox) wrote in
news:email***@***.com:
> I'm writing some real-time numerical code which needs to be pretty
> nippy. Should I be using float or doubles for my calculations?
Also depending on require precision you may be able to use integers and
scale calculations. -- maybe. Dunno if its worh it these days.
Lordy
|
| |
|
| |
 |
Roedy Green

|
Posted: 2004-7-7 2:30:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
On 6 Jul 2004 10:00:43 -0700, email***@***.com (Charles Fox)
wrote or quoted :
>I'm writing some real-time numerical code which needs to be pretty
>nippy. Should I be using float or doubles for my calculations? I
>know my P4 is a 32bit processor, but I don't know if the JVM will end
>up putting the 32bits of the floats into the 32bits of my processor,
>or if it does something else. In C the 64double would take much
>longer to run on a 32bit processor -- is this still the case with the
>virtual machine?
the floating point engine in a Pentium is 80 bits. Java chops that
back to 64 for doubles and 32 for float.
The calculation themselves are done at 80 bits.
You would think it would take slightly longer to convert from internal
form to float than to double since it is more different. Yet on the
original Pentium the FLD (load) is 1 clock for float and double and 3
clocks for extended. FST (store) is 2 clocks for float and double and
3 for extended. You would have to get the Intel manuals for a given
chip to find out for the more recent chips. So it makes no difference.
On the other hand, you can pack twice as many floats into RAM or
SRAM/onchip cache as doubles. If you have more than a handful of them,
this effect will likely prevail.
It is pretty easy to write your code then try it both ways after you
are done.
--
Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming.
See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.
|
| |
|
| |
 |
John C. Bollinger

|
Posted: 2004-7-7 3:00:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
Charles Fox wrote:
> I'm writing some real-time numerical code which needs to be pretty
> nippy. Should I be using float or doubles for my calculations? I
> know my P4 is a 32bit processor, but I don't know if the JVM will end
> up putting the 32bits of the floats into the 32bits of my processor,
> or if it does something else. In C the 64double would take much
> longer to run on a 32bit processor -- is this still the case with the
> virtual machine?
The best advice about optimization is almost invariably to test the
performance first, then adjust as necessary.
Floating-point math on x86 is performed in a FPU that uses 80-bit
operands and creates 80-bit results. This is true whether you start
with a 32-bit or a 64-bit value. In general, depending on whether
intermediate results can be held in the FPU instead of transferred back
to memory, you might find that there is no significant difference in
speed between 32-bit and 64-bit operands. If you do have to transfer
intermediate results then it takes longer to transfer a 64-bit value
than it does to transfer a 32-bit value on a 32-bit machine.
There are other factors as well. For instance, you can hold twice as
many 32-bit values in the CPU's cache; if your application holds a lot
of data or intermediate values in memory then this could be a
consideration. Of course, if the code is not structured so as to be
able to make efficient use of the cache then that in itself will
probably cause a bigger performance impact than 32-bitness vs. 64-bitness.
Don't take these for an exhaustive enumeration of the issues -- you can
find much more comprehensive analyses. But don't overlook my very first
comment: if your code is not running fast enough then you need to
determine _why_ by observation and measurement.
John Bollinger
email***@***.com
|
| |
|
| |
 |
Liz

|
Posted: 2004-7-7 3:23:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
"John C. Bollinger" <email***@***.com> wrote in message
news:ccesrj$eab$email***@***.com...
> Charles Fox wrote:
>
> > I'm writing some real-time numerical code which needs to be pretty
> > nippy. Should I be using float or doubles for my calculations? I
> > know my P4 is a 32bit processor, but I don't know if the JVM will end
> > up putting the 32bits of the floats into the 32bits of my processor,
> > or if it does something else. In C the 64double would take much
> > longer to run on a 32bit processor -- is this still the case with the
> > virtual machine?
>
> The best advice about optimization is almost invariably to test the
> performance first, then adjust as necessary.
>
> Floating-point math on x86 is performed in a FPU that uses 80-bit
> operands and creates 80-bit results. This is true whether you start
> with a 32-bit or a 64-bit value. In general, depending on whether
> intermediate results can be held in the FPU instead of transferred back
> to memory, you might find that there is no significant difference in
> speed between 32-bit and 64-bit operands. If you do have to transfer
> intermediate results then it takes longer to transfer a 64-bit value
> than it does to transfer a 32-bit value on a 32-bit machine.
>
> There are other factors as well. For instance, you can hold twice as
> many 32-bit values in the CPU's cache; if your application holds a lot
> of data or intermediate values in memory then this could be a
> consideration. Of course, if the code is not structured so as to be
> able to make efficient use of the cache then that in itself will
> probably cause a bigger performance impact than 32-bitness vs. 64-bitness.
>
> Don't take these for an exhaustive enumeration of the issues -- you can
> find much more comprehensive analyses. But don't overlook my very first
> comment: if your code is not running fast enough then you need to
> determine _why_ by observation and measurement.
>
>
> John Bollinger
> email***@***.com
<snip>
for(long i=0; i<100000000; i++) {
float1 = (float) i / 17.0f;
}
for(long i=0; i<100000000; i++) {
double1 = (double) i / 17.0;
}
<snip>
Starting FloatDoubleSpeedTest...
Float Time: 5358
Double Time: 6129
|
| |
|
| |
 |
Thomas Weidenfeller

|
Posted: 2004-7-7 16:36:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
Charles Fox wrote:
> I'm writing some real-time numerical code which needs to be pretty
> nippy. Should I be using float or doubles for my calculations?
Implement a typical example, measure it. For your environment, for your
algorithms.
/Thomas
|
| |
|
| |
 |
charlesfox357

|
Posted: 2004-7-8 2:25:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
Thanks for the demo, Liz :) On my P4 (running a bunch of other stuff
at the same time) I get:
float: 6718
double: 7954
Interesting point was mentioned about fitting more in the cache -
hadn't thought of that.
I didnt realise the FP unit was 80 bit -- so why aren't languages
using 80bit FP numbers instead of 32 and 64?
Does the 32bit/64bit processor make any different to big numerical
caluclations then, since most such calculations will be done with FP?
|
| |
|
| |
 |
Grant Wagner

|
Posted: 2004-7-8 2:45:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
Charles Fox wrote:
> Thanks for the demo, Liz :) On my P4 (running a bunch of other stuff
> at the same time) I get:
>
> float: 6718
> double: 7954
>
> Interesting point was mentioned about fitting more in the cache -
> hadn't thought of that.
>
> I didnt realise the FP unit was 80 bit -- so why aren't languages
> using 80bit FP numbers instead of 32 and 64?
If languages used 80-bit FP values, wouldn't the FPU would have to be 96
(or more) bits, so as not to lose precision when doing calculations on FP
values? Aren't the "extra" bits in the FPU so that more precision then is
needed for the final result is retained during calculations? Then the
final result can be rounded (truncated?) and returned as a 32 or 64 bit
value?
|
| |
|
| |
 |
Roedy Green

|
Posted: 2004-7-8 3:25:00 |
Top |
java-programmer >> float vs double : speed on P4 machine
On 7 Jul 2004 11:24:48 -0700, email***@***.com (Charles Fox)
wrote or quoted :
>I didnt realise the FP unit was 80 bit -- so why aren't languages
>using 80bit FP numbers instead of 32 and 64?
Because the way the FP units were designed for use in assembler. You
would load the FP stack up with values, compute away in 80 bit, then
store the results when you were done in 32 or 64.
The more you could avoid storing, the more accurate your results. This
was too loosey goosey for Java, so they effectively insist on a store
after every operation to get consistent results no matter how the code
were compiled.
--
Canadian Mind Products, Roedy Green.
Coaching, problem solving, economical contract programming.
See http://mindprod.com/jgloss/jgloss.html for The Java Glossary.
|
| |
|
| |
 |
| |
 |
Index ‹ java-programmer |
- Next
- 1
- Hibernate: @SecondaryTable causes ORA-00918I have to tables 'first' and 'second':
CREATE TABLE first (
first_id int IDENTITY NOT NULL,
first_value INT NOT NULL,
PRIMARY KEY (first_id)
)
CREATE TABLE second (
second_id int IDENTITY NOT NULL,
first_id int NOT NULL,
second_value INT NOT NULL,
PRIMARY KEY (second_id)
)
I want to join these two tables into one entity using @SecondaryTable.
The columns that are used for joining are named the same in both
tables ('first_id'). Hibernate creates a query like this:
SELECT f_.first_value as first_value_,
s_.secondValue as second_value_
FROM first f_,
second s_
WHERE f_.first_id=s_.first_id(+)
and first_id=?
In the last line Hibernate "forgets" to add a qualifier to 'first_id',
so I get an "ORA-00918: column ambiguously defined" error.
Any ideas?
Thanks,
Ralpe
- 2
- ArrayList Marshalling Question....Hi All,
We are trying to invoke EJB methods on simple stateless session beans
from an Applet running remotely. One of our methods needs to return
an ArrayList of Serializable objects.
We have encoutered the following error: (please see end of post for
stack trace).
Some research has yielded the fact that even though the ArrayList
class in Java implements serializable, the Object[] member is not
serializable, even though the objects that we are putting into the
array are serializable.
Because our applet is REMOTE, we are using RMI-IIOP to access our
Beans which are on iPlanet 6.5.
The beans function properly for all base types and for simple
serilizable objects, but sadly, an ArrayList isn't one of them.
Has anyone else encountered this problem? Suggestions or alternatives
to using the ArrayList class would be appreciated as well.
Thanks in advance...
Omer/John.
--StackTrace--
java.io.IOException: Can't skip sender's custom marshaled class:
RMI:java.util.ArrayList:F655154F32815380:7881D21D99C7619D
at com.sun.corba.se.internal.io.IIOPInputStream.throwExceptionType(Native
Method)
at com.sun.corba.se.internal.io.IIOPInputStream.simpleSkipObject(IIOPInputStream.java:330)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:235)
at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:207)
at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1059)
at j2eeguide.converter._Converter_Stub.trouble(_Converter_Stub.java:383)
at j2eeguide.converter.ConverterClient.main(Unknown Source)
Caught an unexpected exception!
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
org.omg.CORBA.MARSHAL: Unable to read value from underlying
bridge : Can
't skip sender's custom marshaled class:
RMI:java.util.ArrayList:F655154F3281538
0:7881D21D99C7619D minor code: 0 completed: No
org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge :
Can't skip
sender's custom marshaled class:
RMI:java.util.ArrayList:F655154F32815380:7881D2
1D99C7619D minor code: 0 completed: No
at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStre
am.java:1065)
at j2eeguide.converter._Converter_Stub.trouble(_Converter_Stub.java:383)
at j2eeguide.converter.ConverterClient.main(Unknown Source)
- 3
- jsp:include and servletshello,
I have the following problem:
I would like to evacuate the logic from my jsp files in servlets. servlets
provide database contents prepared in HTML tables, the jsp files are
supposed to offer the graphic structure of the intranet application.
how does the path detail have to look?
thats my current include command:
<%@ include file="/proj/mdswpu/classes/ShowList" flush="true" %>
the whole thing is located in the directory webapps/Root/weave INF/classes.
do the path details cause problems or is it due to the servlet? is it no
matter whether doPost or doGet method is used?
the servlet delivers HTML via printwriter.
thank you for the help in advance ....
- 4
- ports/116082: java/linux-sun-jdk16 jconsole is unable toSynopsis: java/linux-sun-jdk16 jconsole is unable to connect to a local process
Responsible-Changed-From-To: freebsd-ports-bugs->java
Responsible-Changed-By: edwin
Responsible-Changed-When: Tue Sep 4 14:20:07 UTC 2007
Responsible-Changed-Why:
Over to maintainer
http://www.freebsd.org/cgi/query-pr.cgi?pr=116082
_______________________________________________
email***@***.com mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-java
To unsubscribe, send any mail to "email***@***.com"
- 5
- How to load a resource from an external jarIf a jar file exists in the classpath, how can I load a resource from
that external jar? Is it different from
"this.getClass().getClassLoader().getResource"?
Thanks in advance!
- 6
- Working with JFrameI Have The Following code to measure how far the mouse has move I can get it
to work for JApplet But not for JFrame how can I get it to work for JFrame?
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Odometer extends JApplet implements MouseMotionListener,
ActionListener
{
private int td=0;
private int last_x=0;
private int last_y=0;
private Graphics g;
private JPanel extra=new JPanel();
private JButton btn=new JButton("Reset");
private JLabel lbl=new JLabel("");
private JTextField txt=new JTextField(10);
private Container c = getContentPane();
public void init()
{
btn.addActionListener(this);
extra.add(btn);
extra.add(txt);
extra.add(lbl);
c.add(extra);
this.addMouseMotionListener(this);
}
public void mouseMoved(MouseEvent e)
{
double ld=0;
String str;
int x;
int y;
x=e.getX();
y=e.getY();
ld=Math.sqrt((Math.pow(x-last_x,2))+(Math.pow(y-last_y,2)));
str=Double.toString(ld);
td=td+Double.valueOf(str).intValue();
txt.setText(Integer.toString(td));
last_x=x;
last_y=y;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==btn)
{
td=0;
txt.setText(Integer.toString(td));
}
}
public void mouseDragged(MouseEvent e){}
}
- 7
- Export HTML table inside JSP to Excel using JavaWhen I generate this table inside this JSP page, it will offer a
button for user to click if he/she decides to export the HTML table
into an Excel sheet (which get displayed directly back in the
browser), then user can save his/her this Excel spreadsheet into his/
her local file system.
Can someone help me on how I can convert this HTML table to Excel
using XSLT? Sample code would really help also, if there's any URL to
refer me to.
Is it a good idea to generate the Excel file (as temporary file which
to be sent back to browser later if user click the button) at the same
time when the HTML table get generated? Then remove this temporary
Excel file later.
Any comments? Thanks,
Jimmy
- 8
- set vm-parameter when converting to jar?!Hello,
I have an application in jbuilder and want to make it into jar file.
my application as an vm-parameter and appearently when i make this jar file
the settings are not set in the jar. how can i do this (in jbuilder)?
thank you very much!!!
Stefan
- 9
- Hiding methods from a public APIWe publish a library. Some of the methods in the public classes are
intended for consumption by our customers, but others are just for
internal use. Ok, fine, declare those methods protected.
A difficultly arises when we want to access one of these internal-use
methods from a class in another package. Example:
com.mydomain.foo.MyFoo wants to access a method in
com.mydomain.bar.MyBar
So the method has to be made public, which makes it available to our
customers. Not good.
How do people generally handle this? I've been putting a "Do not use,
for internal use only" in the Javadoc for the method, but that's not ideal.
- 10
- mouse button 2 is always meta-modified?I have a program in which I wanted to allow the user
to use either Alt or Meta to indicate the same
modification of a mouse click. When I look at what's
returned by getModifiersEx(), I am surprised to
discover that an unmodified Button2 event produces a
value of 256, which also happens to be the value of
MouseEvent.META_DOWN_MASK. The result is that a plain
Button2 event looks like a Meta-modified one. This
cannot be right; and there is no analogous problem
with Button1, which produces 0 for an unmodified
event. In fact, if I hold down any combination of
Shift, Control, and Alt when clicking Button2, then the
256 bit is _not_ set but the appropriate combination
of others is set. I am on a PC and I do not actually
have a Meta key; but I wanted folks who do have one to
be able to use it in preference to Alt. What's going
on here? Is there a solution to this problem? (In
the meantime, I have just removed my Meta-modifier
option so that I can successfully detect that a Button2
event is unmodified.)
I am using SDK 1.4 under Windows 98.
Regards,
David V.
- 11
- objects (newbie)I learnt to program in the top down procedural system (assembly). Knowing
when to create a new function was easy. If you kept repeating the same task
then you needed to put it in a subroutine. But I'm a bit confused by all
these classes in Java. What criteria should I use to decide to create a new
class instead of just add a method to my existing class. I can see me
writting code thats basically one big class with lots of methods. I know I
should break it up into smaller classes but cant tell what criteria to use.
Can anyone recommend a book or url for an object orientated approach to
programming?
Thanks in advance
- 12
- Ask the Experts Session on Project GlassFish -- Week of Nov. 14Project GlassFish is Sun's Open Source Application Server, as well as
the implementation of Java EE 5. It's also part of a larger effort by
Sun to release major portions of Sun's code into Open Source for use by
the community. The code for Project GlassFish goes into building Sun's
Application Server PE 9, and the Reference Implementation of Java EE 5.
In this Ask the Experts session, you'll have the opportunity to ask
questions about Project GlassFish, and get answers from Project
GlassFish Manager, Jim Driscoll, and Project GlassFish Community Leads,
Carla Mott, and Amy Roh.
You can post questions about Project GlassFish on the Ask the Experts
page (http://java.sun.com/developer/community/askxprt/index.html)
starting November 14. The session runs through November 18.
- 13
- help my first java programThis is my first attempt at java
here it is
public class Welcome {
public static void main(String[] args){
System.out.println("Welcome to java");
}
}
however when i compile it i get this error
C:\Java>javac Test.java
Test.java:3: package system does not exist
system.out.println("This is a test");
^
1 error
what am i doing wrong
- 14
- Unable to start tomcat serverHi All,
I'm doing tomcat configuration for the first time. I'm unable to start
tomat server.
What are the mandatory configuration steps.
It populated following error
EmbededTomcat: error creating module
org.apache.tomcat.modules.config.PathSetter
java.lang.ClassNotFoundException:
org.apache.tomcat.modules.config.PathSetter
at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at
java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:575)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at
org.apache.tomcat.startup.EmbededTomcat.createModule(EmbededTomcat.java:
1062)
at
org.apache.tomcat.startup.EmbededTomcat.addModule(EmbededTomcat.java:
391)
at
org.apache.tomcat.startup.EmbededTomcat.addServerXmlModules(EmbededTomcat.java:
434)
at
org.apache.tomcat.startup.EmbededTomcat.addDefaultModules(EmbededTomcat.java:
455)
at
org.apache.tomcat.startup.EmbededTomcat.initContextManager(EmbededTomcat.java:
598)
at
org.apache.tomcat.startup.EmbededTomcat.execute1(EmbededTomcat.java:
791)
at org.apache.tomcat.startup.EmbededTomcat
$1.run(EmbededTomcat.java:775)
at org.apache.tomcat.util.compat.Jdk12Support
$PrivilegedProxy.run(Jdk12Support.java:166)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.tomcat.util.compat.Jdk12Support.doPrivileged(Jdk12Support.java:
76)
at
org.apache.tomcat.startup.EmbededTomcat.execute(EmbededTomcat.java:
773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.tomcat.util.IntrospectionUtils.execute(IntrospectionUtils.java:
52)
at org.apache.tomcat.startup.Main.execute(Main.java:272)
at org.apache.tomcat.startup.Main.main(Main.java:98)
EmbededTomcat: exception initializing ContextManager
Thanks in advance
Regards,
Jagadeesh Tata
- 15
- Encrypting Java Code
I provide a Web service that is mostly JSP with a few java classes
thrown in. I want to give my customers the ability to down load a
subset of the service's functionality (JSPs) to run offline.
How can I encript the code so that it cannot be reversed engineered?
If it encripted, is there a performance hit?
Thanks
|
|
|