Announcement

Collapse
No announcement yet.

Speed limitieren - Datei kopieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Veränderte Schleife für andere Zeitmessung

    Nochmal ich,
    ich hab grad ne Schwäche in meiner Klasse entdeckt. In der Methode "copyLimited" wird in der while-Schleife nur die Zeit gemessen, die beim Schreiben vergeht. Die Einlesezeit wird ignoriert. Falls Du die mit berücksichtigen wills, tausche den Schleifenkopf gegen folgendes aus:
    Code:
    for (long startTimeOfThisRun = System.currentTimeMillis();in.read(this.buffer) > 0;
      startTimeOfThisRun = System.currentTimeMillis())
    Und lösch die erste Zeile in der Schleife (final long...)

    Gruß ngomo
    http://www.winfonet.eu

    Comment


    • #17
      @ngomo
      sehr n1... wer ich auf jeden fall ma testen vielen dank...

      zu
      Da würde ich erstmal schauen was denn der Flaschenhals ist. Ist es die CPU? Sorge dafür das Dein Kopierprogramm nur einen Thread verwendet, dann ist maximal ein Kern zu 100% dicht und der oder die anderen sind zum spielen frei. Starte Dein Kopierprogramm mit niedriger Prozesspriorität unter Windows, wenn das nicht reicht. Diese hat erstmal nichts mit der Threadpriorität in Java zu tun.
      Wie kann ich dafür sorgen das es nur 1 Kern dicht macht?
      Wenn ich nur im Thread kopiere müsste es doch reichen nur seine Priorität zu droseln ?


      Zum Flaschenhals:
      ich bekomme einen ping von 300+ was komisch ist, da ich eine gig Lankarte habe... naja

      Das Problem war eigentlich nicht das ich gezogen habe sondern andere von mir... (ich hab ein Raid 5 nur für daten von der gezogen wurde und 1x500gig fürs system und installierten).

      danke cracker0dks

      EDIT: zu deinem Programm; Hab ich das richtig verstanden? Ich muss da erst ein Objekt der klasse SpeedLimiter erstellen und dann meinen Stream den ich eigentlich in die Datei schreiben will nochma durch das Objekt schicken und das wars ?
      Zuletzt editiert von cracker0dks; 01.09.2010, 23:05.

      Comment


      • #18
        Wie kann ich dafür sorgen das es nur 1 Kern dicht macht?
        Wenn ich nur im Thread kopiere müsste es doch reichen nur seine Priorität zu droseln ?
        Wenn Du nur einen Thread hast, ist dessen Priorität egal. Du mußt die Priorität des ganzen Prozess drosseln. Starte Dein Java-Programm mit

        Code:
        start /BELOWNORMAL java -jar copy.jar
        oder so ähnlich

        Comment


        • #19
          Das Problem war eigentlich nicht das ich gezogen habe sondern andere von mir...
          Das hast du hier sehr gut beschrieben. Hat jeder sofort gwusst, dass es darum geht.

          Weil dies das eigentliche Problem ist, schreibst du ein Programm, welches genau für das Gegenteil ist, und willst es jetzt bei einer LAN-Party verteilen mit dem bemerken:
          " Hier ein Kopierprogramm. Es beschränkt die Leistung"
          Zuletzt editiert von Christian Marquardt; 02.09.2010, 07:58.
          Christian

          Comment


          • #20
            Weil dies das eigentliche Problem ist, schreibst du ein Programm, welches genau für das Gegenteil ist, und willst es jetzt bei einer LAN-Party verteilen mit dem bemerken:
            " Hier ein Kopierprogramm. Es beschränkt die Leistung"
            Meinen Freunden werd ich das schon beibringen können :P

            aber geht ja nicht nur darum.. sondern auch ums prinzip bzw das man die möglichkeit hat, wenn man trosseln den Speed will, dann kann mans mit dem programm machen!

            Comment


            • #21
              Wieso schreibst Du eigentlich selbst ein Kopierprogramm, außer als Java-Übung? Verwende doch Robocopy. Das ist bei Windows (mittlerweile) dabei und kann wirklich alles. Sogar die Bandbreite kann man drosseln (was ich aber noch nie benötigt bzw. benutzt habe).

              http://de.wikibooks.org/wiki/Datensi...euge/_ROBOCOPY

              http://de.wikibooks.org/wiki/Datensi..._ROBOCOPY/_GAP

              Comment


              • #22
                Wieso schreibst Du eigentlich selbst ein Kopierprogramm, außer als Java-Übung? Verwende doch Robocopy. Das ist bei Windows (mittlerweile) dabei und kann wirklich alles. Sogar die Bandbreite kann man drosseln (was ich aber noch nie benötigt bzw. benutzt habe).
                Naja konsolen anwendungen sind nicht gerade massentauglich :P

                Hab gelesen, das Robocopy auch inkrementelle kopien bzw backups machen kann... wie hab ich mir das eigendlich vorzustellen? Denn: inkrementell bedeutet doch das ich eine Datei nicht komplett kopiere, sondern nur änderungen in der Datei selber.

                doch wenn ich den ganzen code (zum vergleich) doch einlesen muss, dann hab ich doch nix gewonnen... dann hätt ich doch gleich kopieren können oder ?

                ausgenommen natürlich archiv dateien, bzw spezielle dateien Backupimages von Acronis zb.

                Comment


                • #23
                  Naja konsolen anwendungen sind nicht gerade massentauglich :P
                  Was ist dir an Robocopy GUI unverständlich?

                  GUI = Graphical User Interface


                  http://www.chip.de/downloads/Robocop..._28220207.html
                  Christian

                  Comment


                  • #24
                    Inkrementell bezieht sich auf Dateien, nicht auf Dateiinhalte

                    Inkrementell bezieht sich nicht auf Dateiinhalte sondern auf komplette Verzeichnisbäume.

                    Stell Dir vor, Du willst Dein Datenlaufwerk auf sichern. Du machst am Anfang eine komplette Kopie. Das dauert zwar lange, muss aber sein. Jetzt arbeitest Du täglich damit und veränderst dabei einzelne Dateien. Am Abend musst Du nur diese veränderten Dateien sichern. Das geht viel schneller. Die Woche über sicherst Du also nur immer die Dateien, die Du geändert hast. Am Wochenende machst Du dann wieder eine Vollsicherung usw.

                    Das ist inkrementelles Backup.
                    http://www.winfonet.eu

                    Comment


                    • #25
                      Stell Dir vor, Du willst Dein Datenlaufwerk auf sichern. Du machst am Anfang eine komplette Kopie. Das dauert zwar lange, muss aber sein. Jetzt arbeitest Du täglich damit und veränderst dabei einzelne Dateien. Am Abend musst Du nur diese veränderten Dateien sichern. Das geht viel schneller. Die Woche über sicherst Du also nur immer die Dateien, die Du geändert hast. Am Wochenende machst Du dann wieder eine Vollsicherung usw.
                      ja gut das kein mein Programm auch :P

                      Was ist dir an Robocopy GUI unverständlich?

                      GUI = Graphical User Interface
                      oh hab ich nich gesehen das es das auch als Gui gibt^^

                      Comment

                      Working...
                      X