Java und Eclipse auf MAC

Hmm.. also langsam äußert sich folgendermaßen: Dasselbe Programm braucht auf dem Windows keine 5 sek, auf dem Mac rechnet und rechnet er bis zu fünf Minuten.. In der Zeit ist der Rechner zu nix zu gebrauchen... Das Programm funktioniert also, aber es ist irgendwie kein Zustand, dass ich für das kompilieren und ausführen minutenlang warten muss...:(.
 
Sofern du nichts geheimes machst könntest du ja evtl. den Code posten, so kann man das vielleicht genauer untersuchen.

-s
 
Wenn das Programm an sich lahm ist, kann das natürlich nicht an der Entwicklungsumgebung liegen... Welche Grafikkarten sind jeweils in deinem Mac und in der Windowskiste verbaut? Vielleicht liegt´s gar nicht an dem Prozessor sondern an der Graka (natürlich nur Vermutung, weil wir nciht wissen, was du genau machst)...
 
Hmm ja, da braucht man noch ein paar mehr Infos.

Was ich meine aus deiner Antwort herausgehört zu haben ist, dass anscheinend das Programm direkt nach dem starten die Berechnungen durchführt.

Hat das Programm eine Swing GUI? Führst du die Berechnungen zufällig auf dem EDT aus? Würde zwar nicht die längere Wartezeit gegenüber Windows erklären, aber das freezen...

Wäre schon ganz schön, wenn du hier ein bissl Code zeigen könntest, wenn es denn für dich in Frage kommt.
 
Huhu,

sorry dass meine Antwort etwas auf sich hat warten lassen... Stecke hier ziemlich im Umzugsstress.. Jetzt aber zu Java:). Klar, ich hänge euch mal die Beiden Methoden an, die eine besonders lange Verzögerung gegenüber Windows haben. Wie gesagt, der identische Quellcode läuft mit dergleichen IDE auf Windows super schnell, auf dem Mac rechnet er sich echt seine guten 4 Minuten zusammen... Vielleicht habt ihr eine Idee, würde mir total helfen, ich weiß echt nicht woran es liegen könnte...

Methode 1):

public void poly()
{ int x;
double upper, lower, y, werte[][], ratioy, intervall;
werte = new double[WIDTH][2];
upper = Double.MIN_VALUE;
lower = Double.MAX_VALUE;
x=0;
intervall = 2.0/WIDTH;
//System.out.println("Intervall: "+intervall);

for (y=-1; y<(1-intervall); y=y+intervall) {

werte[x][0] = x;
werte[x][1] = 1+y+Math.pow(y, 2)+Math.pow(y, 3);
//System.out.println("werte[x][1]: "+werte[x][1]);
upper = Math.max(upper, werte[x][1]);
lower = Math.min(lower, werte[x][1]);
x++;
}//end for


ratioy = (upper - lower) / (double)(HEIGHT-1);

for (x = 0; x < WIDTH-2; x++) {

graphics.drawLine((int)(werte[x][0]), HEIGHT-(int)(werte[x][1]/ratioy),
(int)(werte[x+1][0]), HEIGHT-(int)(werte[x+1][1]/ratioy));

}//end for
meth=8;
g = new showGraphics(0,0,0,0,0,0,meth);
}

/*Schreiben der Grafik in eine TIFF-Datei*/
public void writeTIFF()
{
System.out.println("Gezeichnetes Objekt in TIFF - Datei speichern...");
// Bild in TIFF-File schreiben
JAI.create("filestore",image,"D:/Eclipse/Geom.tif","TIFF");
System.out.println("Datei abgelegt in D:/Eclipse/Geom.tif");

}


Methode 2):

public void resmeas() {

int i, intervall, punkt=12, feld=0, space=0, dist=0, move, column, change, height, correct1, correct2;
double frequD=3.094;

Color col;
col = new Color(0,0,0);
Font font;
column = WIDTH/12;

//Darstellen der Grenzbalken
graphics = drawColor(graphics, Color.gray);
graphics.setColor(Color.white);
graphics.fillRect(WIDTH/8,HEIGHT/8,WIDTH-WIDTH/4,HEIGHT/16);
graphics.setColor(Color.black);
graphics.fillRect(WIDTH/8,7*HEIGHT/8-HEIGHT/16,WIDTH-WIDTH/4,HEIGHT/16);

if(HEIGHT>1000) {
move=120;
change=105;
height = 44;
correct1 =12;
correct2=5;
font = new Font("Arial",1,22);
}
else{
move=90;
change=70;
height = 34;
correct1=8;
correct2=0;
font = new Font("Arial",1,14);
}
graphics.setFont(font);
//Erstellung des Schwarz-Wei? Musters
//F¸llfl‰che bestimmen
intervall = 3*WIDTH/4;
//Faktor 12, da 12 verschiedene Frequenzabstufungen
intervall = intervall/12;
do{
feld = intervall/punkt;
//Schleife zum Auff¸llen der einzelnen Frequenzmessbereiche
for(i=0;i<feld*punkt;i=i+punkt){
col = graphics.getColor();
if(col==Color.white) graphics.setColor(Color.black);
if(col==Color.black) graphics.setColor(Color.white);
graphics.fillRect(WIDTH/8+i+space,HEIGHT/8+HEIGHT/16,punkt,3*HEIGHT/4-HEIGHT/8+1);
}
space = space + feld*punkt;
dist = WIDTH/8+space;
punkt--;

//Trennstriche einzeichnen
col = graphics.getColor();
graphics.setColor(Color.black);
if(punkt>0) {
graphics.drawLine(dist, HEIGHT/16, dist, HEIGHT/8-1);
graphics.drawLine(dist, 7*HEIGHT/8, dist, 7*HEIGHT/8+HEIGHT/16);
}

//Frequenzbeschriftungen einf¸gen
//graphics.drawString(String.valueOf(frequD)+" MHz", dist-change, HEIGHT/8-14);
graphics.drawString(String.valueOf(column)+" Spalt.", dist-change, HEIGHT/8-move/4);
if((frequD<10.)){
graphics.drawString(String.valueOf(frequD)+" MHz", dist-change-correct2, 7*HEIGHT/8+height);
//graphics.drawString(String.valueOf(column)+" Spalt.", dist-change, 7*HEIGHT/8+move/3+7);
}
else{
graphics.drawString(String.valueOf(frequD)+" MHz", dist-change-correct1, 7*HEIGHT/8+height);
}

if(punkt>0) {
frequD = 37.125/punkt;
frequD = frequD*1000;
frequD = Math.round(frequD);
frequD = frequD/1000;
column = WIDTH/punkt; }

graphics.setColor(col);
}while(punkt>0);

//Abfrage, ob komplette Fl‰che gef¸llt wurde, ansonsten auff¸llen
if(dist<3*WIDTH/4+WIDTH/8){

for(i=dist;i<3*WIDTH/4+WIDTH/8;i++) {
col = graphics.getColor();
if(col==Color.white) graphics.setColor(Color.black);
if(col==Color.black) graphics.setColor(Color.white);
graphics.fillRect(i,HEIGHT/8+HEIGHT/16,1,3*HEIGHT/4-HEIGHT/8+1);
}

}


//Daten in Datei speichern
JAI.create("filestore",image,"D:/Eclipse/Testpictures/ResMeas.tif","TIFF");
}


Den Pfad für das Abspeichern der Datei ändere ich natürlich, je nach BS. Ich habe ein Main Programm, aus dem mittels Switch- Case verschiedene Grafikroutinen ausgewählt werden können. Vor Aufruf der Methoden wird ein Graphics2D Objekt angelegt mit allen nötigen Vorgaben...

Ich bin mir mittlerweile fast sicher, dass es in irgendeiner Form an der langsamen Umsetzung des Proggs liegt. Also mit anderen Worten, enn ich das Prog Compiliere und Starte, ist es sofort da und fragt nach der gewünschten Grafikberechnung... Dann wähle ich was aus und dann scheint er die vielen Rechenschritte nicht wirklich schnell zu packen.. Aber ihr seid da wohl fitter als ich und sehr vielleicht eher woran es liegen könnte..:))).

*Greez und Thx!

Jodie
 
Kleiner Nachtrag an dieser Stelle.. Ich habe mal gerade ein ganz einfaches Prog geschrieben, was einfach einen Farbbalken erzeugt und den dann auch als TIFF gespeichert.. Ging hammer schnell, Ergebnis ist also, er hat kein Problem mit dem TIFF erzeugen, sondern verhakt sich irgendwie wenn er viele Rechenschritte machen muss..

Vielleicht hilft das weiter...

Greez,

Jodie
 
Zurück
Oben Unten