www.mikrocontroller.net

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


Autor: Refler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Εrnst B✶ (ernst)
Datum:

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

Autor: Refler (Gast)
Datum:

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

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Refler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Refler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Heinz (Gast)
Datum:

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

Autor: Refler (Gast)
Datum:

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

Mit Multithreading habe ich mich noch nicht beschäftigt.

Autor: Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: DirkB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm zweimal starten sollte auch funktionieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.