Seite 2 von 3

Verfasst: 04.04.2009 11:06
von X360 Andy
C:
Total Files : 814
Total Lines : 34462 /Durchschnitt 42 Lines pro File :?

HDD:
Total Files : 374
Total Lines :146487

Verfasst: 04.04.2009 12:47
von DrNo
Total Files: 114
Total lines: 11563

Verfasst: 04.04.2009 13:00
von KeyKon
Total files: 723
Total lines: 115568

Verfasst: 04.04.2009 13:06
von teejex
hi

hab das programm auch mal laufen lassen xD
ca 700 Dateien
ca 90.000 Zeilen
Habe allerdings nach .pb, .java, .cpp und .rb gesucht - da ich mit PB fast noch gar nix gemacht habe^^

übrigens würde ich das delay(1) und die PrintN(...) sachen rausnehmen, da das ganze dann - zwar vorübergehend auf kosten des Prozessors - um einiges schneller vonstatten geht ^^ nützlich wenn man seine ganze Festplatte scannt.

MfG
Jan

Edit: Höchstwahrscheinlich ist das wahre Ergebnis um einiges deprimierender, da ich nicht davor zurückgeschreckt bin, Beispielcodes usw. mitzuscannen :oops:

Verfasst: 04.04.2009 13:15
von AndyMars
teejex hat geschrieben:Habe allerdings nach .pb, .java, .cpp und .rb gesucht - da ich mit PB fast noch gar nix gemacht habe^^
...
Das ist doch OK, wenn man darauf hinweist...

...

Aber-aber-aber... :shock: delayed(1) darfst du doch nicht entfernen! Windows ist ein Multitaskingsystem!!! Oh Gott, oh Gott... *bibber*

...

;)

edit:
teejex hat geschrieben:Ausserdem hat es ja noch einen weiteren Kern
Auja - daran hab ich gar nicht gedacht ^^.

Verfasst: 04.04.2009 13:17
von X0r
>Habe allerdings nach .pb, .java, .cpp und .rb gesucht - da ich mit PB fast noch gar nix gemacht habe^^

Und ca. 0.5 % der Zeilen sind von dir, oder? :mrgreen:

Verfasst: 04.04.2009 13:20
von teejex
...dann ist mein Windows jetzt halt single - lebt aber immer noch xD
Ausserdem hat es ja noch einen weiteren Kern, wo es sich als "MultitaskingManager" austoben darf.

Messwerte(Ohne zwischenzeitliche PrintN() Ausgabe)
Delay(1) -> 6224ms - 6,2s - 0,1min
;Delay(1) -> 550029ms - 550,0s - 9,1min
MfG
Jan

Edit: 0,5% ist wohl etwas übertrieben - im negativen Bereich findeste vielleicht mehr :D
Spass beiseite, ich vermute mal, dass an die 10-15k Zeilen von mir sind... wovon maximal 200 PB sein dürften :D

Verfasst: 04.04.2009 13:30
von KeyKon
teejex hat geschrieben:übrigens würde ich das delay(1) und die PrintN(...) sachen rausnehmen, da das ganze dann - zwar vorübergehend auf kosten des Prozessors - um einiges schneller vonstatten geht ^^ nützlich wenn man seine ganze Festplatte scannt.
Das kann man schlecht messen, da wenn man das Prog zum Zweiten mal startet die Festplatte nicht mehr wirklich durchsucht wird da schon alles im Speicher hängt...
In der Regel braucht man das Delay allein darum nich weil das Suchen ExamineDirectory und das ganze File einlesen eh nicht 100% CPU sondern eher 100% Pladde brauchen...

BTW, hier eine kleine Interessante Erweiterung:

Code: Alles auswählen

;PureBasic 4.3
;counts every line of specified files in subdirectories
;...just for fun

Global GStartDir.s = PathRequester("Ordner wählen...","")
If GStartDir = "" : End: EndIf
Global GSearchPattern.s = "|pb|pbi|"
Global ClipBoardText.s
Global GFileCount.l, GLineCount.l, GDirCount.l

Global NewList Lines()

Procedure  _FilzDir(dir.s)
   If Right(dir,1)<>""
      dir+""
   EndIf
   ;PrintN(dir)
   ExId = ExamineDirectory(#PB_Any,dir,"*.*")
   If ExId
    GDirCount+1
    While NextDirectoryEntry(ExId)
       d$=DirectoryEntryName(ExId)
      If DirectoryEntryType(ExId) = #PB_DirectoryEntry_File ; --------- file
         If FindString(GSearchPattern,"|"+GetExtensionPart(d$)+"|",1)
           ;PrintN(d$)
           GFileCount+1
           fhndl=OpenFile(#PB_Any,dir+d$)
           If fhndl
              GLinePerFileCount = 0
              While Eof(fhndl)=0
                 ReadString(fhndl)
                 GLineCount+1
                 GLinePerFileCount+1
              Wend
              AddElement(Lines())
              Lines() = GLinePerFileCount
              CloseFile(fhndl)
           EndIf
        EndIf
      ElseIf d$ <> "." And d$ <> ".." ; --------- directory
        _FilzDir(dir+d$)
      EndIf
    Wend
    FinishDirectory(ExId)
   EndIf
   ;Delay(1) ;concession
EndProcedure

Procedure PrintN1(text$)
  PrintN(text$)
  ClipBoardText+text$+Chr(10)
EndProcedure

If OpenConsole()
   _FilzDir(GStartDir)
   PrintN("")
   PrintN1("Total files: "+Str(GFileCount))
   PrintN1("Total lines: "+Str(GLineCount))
   PrintN1("Total dirs: "+Str(GDirCount))
   PrintN1("---")
   PrintN1("Arithmetischen Mittel: "+StrF(GLineCount/GFileCount,1)+" L/F")
   
   SortList(Lines(),#PB_Sort_Ascending)
   If ListSize(Lines())%2 = 0
     SelectElement(Lines(),ListSize(Lines())/2)
     el1 = Lines()
     SelectElement(Lines(),ListSize(Lines())/2+1)
     el2 = Lines()
     median = (el1+el2)/2
   Else
     SelectElement(Lines(),Round(ListSize(Lines())/2,1))
     median = Lines()
   EndIf
   
   PrintN1("Median: "+Str(median)+" L/F")
   PrintN("")
   PrintN("Press enter...")
   
   SetClipboardText(ClipBoardText)
   
   Input()
EndIf

End
Total files: 723
Total lines: 115568
Total dirs: 290
---
Arithmetischen Mittel: 159.8 L/F
Median: 84 L/F

Verfasst: 04.04.2009 13:31
von Kevin
Total files: 692
Total lines: 2134289
Total bytes: 39428761
Total dirs: 413
---
Arithmetischen Mittel: 3084.2 L/F
Median: 443 L/F

Verfasst: 04.04.2009 15:48
von RSBasic
Total files: 4423
Total lines: 361912