Schneller als FileWriter?

Status
Nicht offen für weitere Antworten.
N

NicetoHave

Gast
Hey Leute,


wollte mal fragen ob es was schnelleres gibt als den FileWriter?

:lol: :lol:
 
S

SlaterB

Gast
evtl. kombiniert mit BufferedWriter,
manchmal liegt die Langsamkeit auch an falscher Bedienung ;)
 
N

NicetoHave

Gast
Code:
try
    {
        
        File datei = new File("c:/Test/XML_Dateien/"+String.valueOf(i)+"__"+Zeit.generiere_Stempel());
        FileWriter writes = new FileWriter(datei);
        writes.write(Ergebnis);
        writes.close();
        //Thread.sleep(100);
    }catch(Exception e)
    {
        System.out.println("Fehler beim Schreiben");
    }



So greif ich darauf zu! Kann man da noch was optimieren!


Bringt an dieser Stelle der BufferedWriter was?


danke dir(euch)
 
S

SlaterB

Gast
ich denke da ist nix zu machen, ist dir das zu langsam, machst du das häufig?

die meiste Zeit könnte da vielleicht für das Warten auf das Betriebssystem draufzugehen,
wenn du das also in einem Thread ausführst, könnten andere Thread nebenbei weiterarbeiten,
in diesem Millisekunden-Bereich ist aber fraglich, ob nicht vielleicht die Verwaltung der Threads selber den Gewinn auffrisst..

also musst schon mehr darüber erzählen, warum du was für langsam hälst
 
G

Gast

Gast
Dazu muss ich sagen, dass ich einen String von 2 kb abspeichere.


Kann ich dabei dann auch FileChannel einsetzen?
 
G

Gast

Gast
Code:
ByteBuffer newbie = ByteBuffer.wrap(Ergebnis.getBytes());

        //Hier wird die eindeutige Datei geschrieben.   
    try
    {
        
        File datei = new File("c:/Test/XML_Dateien/"+String.valueOf(i)+"__"+Zeit.generiere_Stempel());
        FileOutputStream output = new FileOutputStream(datei);
        FileChannel optimize = output.getChannel();
        //FileWriter writes = new FileWriter(datei);
        optimize.write(newbie);
        optimize.close();
        //writes.write(Ergebnis);
        //writes.close();
        //Thread.sleep(100);
    }catch(Exception e)
    {
        System.out.println("Fehler beim Schreiben");
    }



Hab das jetzt mal ausprobiert! Ist das so in Ordnung?

sorry @Hobbit wenn ich frage :wink:
 
N

NicetoHave

Gast
@SlaterB Ich mach das speichern ca. 11000 mal und mehr! Immer unterschiedliche Daten in ein Ordner......
 
N

NicetoHave

Gast
für die Leute die es interessiert.

Hab jetzt einmal FileWriter zum Schreiben benutzt.

Für 560 Dateien hat er 3466 Millisekunden gebraucht.

Als ich dann den FileChannel benutzt habe, ist die Dauer auf 3325 Millisekunden gesunken.


Gruss
 

The_S

Top Contributor
Naja, das ist nicht viel und kann beim nächsten mal auch komplett anders aussehen. Evtl. kann man wo anders noch optimieren. Was hast du denn alles mitgemessen? Nur das pure Schreiben?
 

The_S

Top Contributor
Naja, das ist nicht viel und kann beim nächsten mal auch komplett anders aussehen. Evtl. kann man wo anders noch optimieren. Was hast du denn alles mitgemessen? Nur das pure Schreiben?
 
N

NicetoHave

Gast
Ich hab nur das pure Schreiben gemessen.

Kann es daran liegen,das durch die Umwandlung von String zu Bytebuffer viel zeit verloren geht?

ByteBuffer newbie = ByteBuffer.wrap(Ergebnis.getBytes());

Wenn ich direkt mit Bytebuffer arbeite müsste das doch schneller sein.

Die Bremse ist die Umwandlung! was denkst du(ihr)?
 
S

SlaterB

Gast
einfach zu testen: lasse das Schreiben weg und führe nur das Umwandeln aus/
Gegentest: erzeuge 11.000 Dateien mit einem Dummy-Byte Inhalt

wie 11.000x 2kb in 4 Sekunden zu langsam sein kann ist mir aber schleierhaft,
klingt für mich flott ;)
 
S

SlaterB

Gast
nun, dann also 66 Sekunden insgesamt, 166 Dateinen pro Sekunden?
zähle ich persönlich immer noch zum Bereich 'rasend schnell',

unbedarft vermutet hätte ich vielleicht 20 pro Sekunde ;)
 
S

SlaterB

Gast
wenn es jemand sofort wüsste, würde er/ sie es dir nicht vorenthalten,
z.B. dass String + String + String langsam ist wird jeder schnell erschlagen,

aber
ByteBuffer newbie = ByteBuffer.wrap(Ergebnis.getBytes());
bietet nunmal weniger Angriffsfläche,
bzw. die, die darüber genau Bescheid wissen, sind seltener (da) ;)
 
G

Gast

Gast
Das Umwandeln von String nach Byte dauert pro String:

Start:20434247666593
Ende:20434247987630

das macht 321037 Nanosekunden. aber Das kann doch nicht sein?

System.nanoTime() habe ich dafür verwendet.
 
S

SlaterB

Gast
aber nicht eine einzelne Umwandlung messen, sondern 11000x und dann am Ende durch 11000 teilen,
und bleib ruhig bei Millisekunden,
Zeiten unter 100 ms kann man getrost als Zufallsungenauigkeit werten
 
G

Gast

Gast
0,32*11000 = 3520 Millisekunden

hehe :) , für genauigkeitszwecke könnte ich aber dann deine Variante nehmen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
C Ein Algorithmus soll schneller werden Java Basics - Anfänger-Themen 24
Hallolu Pong-Spiel: Schläger schneller werden lassen Java Basics - Anfänger-Themen 9
S Was ist schneller: direkte Sortierung oder indirekt ueber eine SortedMap..? Java Basics - Anfänger-Themen 10
M Schneller Timer Java Basics - Anfänger-Themen 2
P Schneller Quadratzahltest für beliebig große natürliche Zahlen Java Basics - Anfänger-Themen 2
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
H Operatoren Was ist schneller: <, <=, ==, >, >=? Java Basics - Anfänger-Themen 46
P schneller Sort ? Java Basics - Anfänger-Themen 2
V Double schneller als Float? Java Basics - Anfänger-Themen 13
R ArrayList sehr viel schneller als Array? Java Basics - Anfänger-Themen 2
Dit_ Was ist schneller | < oder >= Java Basics - Anfänger-Themen 6
M Java URLConnection schneller bekommen Java Basics - Anfänger-Themen 3
M schneller Klassenvergleich Java Basics - Anfänger-Themen 2
A Datein kopieren: File oder xcopy? Was ist schneller? Java Basics - Anfänger-Themen 10
R java-programme schneller laufen lassen Java Basics - Anfänger-Themen 41
M Mehrere Threads nutzen --> run() schneller als start(), Warum? Java Basics - Anfänger-Themen 3
ruerob Warum ist Timer schneller als While? Java Basics - Anfänger-Themen 9
J Wie java programm noch schneller machen? Java Basics - Anfänger-Themen 30
S LinkedList indexOf() - geht des irgendwie schneller? Java Basics - Anfänger-Themen 23
O String-Prüfung: Was ist besser/schneller? Java Basics - Anfänger-Themen 15
S Schneller Zugriff auf Liste mit sortierten Flaechen..? Java Basics - Anfänger-Themen 7
G Arraysuche schneller ausführen? Java Basics - Anfänger-Themen 14
H Serialization: Was ist besser(schneller) Binary <-> XM Java Basics - Anfänger-Themen 2
G Bessere Lösung für SQL STMNT ? (Schneller?) Java Basics - Anfänger-Themen 4
C was is schneller Vector oder double Array Java Basics - Anfänger-Themen 5
G java optimieren. wie daten schneller in mysqlDB schreiben? Java Basics - Anfänger-Themen 15
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
O Ausgabe als .txt Datei speichern mit FileWriter Java Basics - Anfänger-Themen 2
B FileWriter nicht sichtbar? Java Basics - Anfänger-Themen 4
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
D FileWriter schreibt nicht in Datei Java Basics - Anfänger-Themen 14
Z FileWriter erzeugt Symbole Java Basics - Anfänger-Themen 8
C FileWriter bzw. Reader fehlerhaft Java Basics - Anfänger-Themen 6
C FileWriter Problem. Java Basics - Anfänger-Themen 2
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
D Nur aus Interesse: Warum verwendet man FileWriter.flush()? Java Basics - Anfänger-Themen 4
B FileWriter und JFileChooser zusammenfügen Java Basics - Anfänger-Themen 3
B FileWriter close() muss? Java Basics - Anfänger-Themen 8
Java-Insel Methoden FileWriter Methoden funktionieren nicht Java Basics - Anfänger-Themen 20
D Erste Schritte Warum try-catch für FileWriter Java Basics - Anfänger-Themen 5
G Effizienzsteigerung von FileWriter als Logging Java Basics - Anfänger-Themen 4
L FileReader und Filewriter Java Basics - Anfänger-Themen 4
O Datentypen double in string über fileWriter... Java Basics - Anfänger-Themen 7
O OOP fileWriter Dateiname übergeben Java Basics - Anfänger-Themen 12
R Klassen FileWriter und CharSet Java Basics - Anfänger-Themen 4
Luk10 FileWriter Java Basics - Anfänger-Themen 6
W Problem mit FileWriter / ActionListener Java Basics - Anfänger-Themen 6
O Integer in File mit Filewriter schreiben - geht nicht richtig Java Basics - Anfänger-Themen 4
M Probleme mit FileWriter Java Basics - Anfänger-Themen 7
M FileWriter innerhalb runnable Jar Java Basics - Anfänger-Themen 8
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
C FileWriter mit einer Variable Java Basics - Anfänger-Themen 8
S FileWriter - in neue Zeile schreiben!? Java Basics - Anfänger-Themen 19
K FileWriter Speicherort Java Basics - Anfänger-Themen 7
T OOP Speichern mit BufferedWriter(FileWriter(File)) Java Basics - Anfänger-Themen 2
S FileWriter Java Basics - Anfänger-Themen 3
S Filewriter schreibt einfach nicht Java Basics - Anfänger-Themen 6
G FileWriter -> neue Zeile Java Basics - Anfänger-Themen 13
F Seltsame Zeichen und kein Zeichenumbruch mit Filewriter Java Basics - Anfänger-Themen 4
G FileWriter Java Basics - Anfänger-Themen 3
G FileWriter Java Basics - Anfänger-Themen 6
T FileWriter Java Basics - Anfänger-Themen 5
M FileWriter Java Basics - Anfänger-Themen 18
J Problem mit FileWriter Java Basics - Anfänger-Themen 24
B Problem mit Filereader und filewriter Java Basics - Anfänger-Themen 20
M FileWriter-Problem Java Basics - Anfänger-Themen 2
P FileWriter schreiben? Java Basics - Anfänger-Themen 4
L Streamklassen, Filewriter und StringBuffer Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
G Prüfen mit FileWriter Java Basics - Anfänger-Themen 6
N Problem mit FileWriter Java Basics - Anfänger-Themen 2
S FileWriter-Variable nicht initialisiert Java Basics - Anfänger-Themen 3
R FileWriter: Dort wieder anfangen, wo er aufgehört hat Java Basics - Anfänger-Themen 4
S FileWriter funzt nicht :( Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben