Forum: PC-Programmierung VB2008 Anwendung hat nur 50% CPU Auslastung


von Refler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute.

Habe eine VB2008 Anwendung geschrieben, die das volle Potential einer 
CPU ausschöfen soll. Quasi ein Burnin Program :-)
Bei den Einkern Prozessoren in der Firma bekomme ich z.B. 9000 Treffer 
pro Sekunde. Daheim (2*2.1 Ghz) bekomme ich nur 6000 Treffer.
Mir ist aufgefallen, das nur ein Prozessorkern verwendet wird.
Kann man das ändern, damit die "volle" Leistung ausgeschöpft wird?

Habe das Programm mal angehangen. Würde mich interesieren, wieviel Hits 
ihr zusammenbringt.

von Εrnst B. (ernst)


Lesenswert?

Du lädst also deinen Virus/Trojanisches Pferd/Festplatten-Formatierer 
hier hoch und hoffst dass irgendein Dummer den ausführt, oder?

von Refler (Gast)


Lesenswert?

Sicher, nur. Was sonst. Hast du eine Antwort für mich parat, oder wird 
wieder mal nur herumgenörgelt?

von Εrnst B. (ernst)


Lesenswert?

Eine Antwort:
=> Zeig Quelltext, dann kann man was dazu sagen.
=> Lass es beim .EXE, und du bleibst für mich ein verhindertes 
Script-Kiddie.

von Refler (Gast)


Lesenswert?

Den source habe ich in der Firma. War nur ein kleines Programm in der 
Mittagspause. Es wird einfach von 0 bis Z gezählt. Und das 32 stellig.
32 stellig darum, weil mir sonst unterstellt wird ich würde irgendein 
Passwort knacken versuchen. Bei 32 Stellen durchaus Aussichtlos.

von Refler (Gast)


Lesenswert?

Habe den source auf die schnelle nachgeschrieben. Aber nur bis zur 12 
Stelle,

       break = False
        Do
            If Increase(Stelle1) = True Then
                Stelle1.Text = "0"
                If Increase(Stelle2) = True Then
                    Stelle2.Text = "0"
                    If Increase(Stelle3) = True Then
                        Stelle3.Text = "0"
                        If Increase(Stelle4) = True Then
                            Stelle4.Text = "0"
                            If Increase(Stelle5) = True Then
                                Stelle5.Text = "0"
                                If Increase(Stelle6) = True Then
                                    Stelle7.Text = "0"
                                    If Increase(Stelle8) = True Then
                                        Stelle9.Text = "0"
                                        If Increase(Stelle10) = True 
Then
                                            Stelle10.Text = "0"
                                            If Increase(Stelle11) = True 
Then
                                                Stelle11.Text = "0"
                                                If Increase(Stelle12) = 
True _
                                                  Then
                                                    Exit Sub
                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
            My.Application.DoEvents()
        Loop Until break = True


Increase = False
        Dim ascii As Byte
        ascii = Asc(Speicher.Text)
        If ascii = 57 Then 'Zahlen 9 erreicht
            ascii = 64 'eine Stelle vor A wählen
        End If
        If ascii = 90 Then 'Z ereicht
            Increase = True
            Exit Function
        End If
        ascii = ascii + 1
        Speicher.Text = Chr(ascii)


zufrieden jezt?

von Heinz (Gast)


Lesenswert?

Wenn du zwei Threads startest klappts auch mit der Auslastung der 
kompletten CPU. Ein Thread alleine kann keine zwei CPUs parallel 
belegen.

von Refler (Gast)


Lesenswert?

Finde ich dazu im Netz irgendwo ein Beispielsprogramm (mit 2 Do Loop, 
oder so) ?

Mit Multithreading habe ich mich noch nicht beschäftigt.

von Heinz (Gast)


Lesenswert?

Ich kann leider kein VB aber im Netz findest du sicher einige Beispiele 
wie man Threads startet. Threads sind dann normalerweise auch nichts 
anderes als Funktionen die eben spezielle als Thread aufgerufen werden. 
Wenn du dann in diese Funktionen deine Loops rein schreibst hast du dein 
Ziel erreicht.

von DirkB (Gast)


Lesenswert?

Das Programm zweimal starten sollte auch funktionieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.