vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Re: Warum Speicherbedarf für boolean 2 bytes  
Autor: Mahobi
Datum: 09.07.04 18:15

Hi,

so, hab meinen Algorithmus nochmal etwas verbessert. Hier die Ergebnisse:

200 000 Primzahlen:
Alt: ca. 60ms
Neu: ca. 40ms

2 Mio Primzahlen:
Alt: ca. 631ms
Neu: ca. 411ms

20 Mio Primzahlen:
Alt: knapp 10s
Neu: knapp 6s

200 Mio Primzahlen:
Alt: ca. 112s
Neu: ca. 66s

Beim Versuch mit 200 Mio war der RAM-Konsum bei knapp 30MB.
Die Werte stammen von der kompilierten exe.
Testsystem ist mein AthlonXP 2100 mit 1GB RAM

Hier der Code der Funktion:
Private Sub GetPrim()
Dim i As Long, lBisZahl As Long
Dim lCurrentPrim As Long
Dim lEndeZahl As Long
Dim lStart As Long, lEnde As Long
Dim sOut As String
Dim bitPrim As clsBitArray
Dim lStep As Long
 
Set bitPrim = New clsBitArray
 
 
  lBisZahl = Text1.Text - 1
 
  lStart = GetTickCount
 
  bitPrim.Bits = lBisZahl
 
  lCurrentPrim = 2
  lEndeZahl = (lBisZahl + 1) / 2
 
  'Primzahl 2 extra beachten
  For i = 4 To lBisZahl Step 2
    bitPrim.Bit(i) = True
  Next i
 
  For lCurrentPrim = 3 To lEndeZahl
    If bitPrim.Bit(lCurrentPrim) = False Then
      ' Hier werden nur die ungeraden Vielfachen der Primzahl durchlaufen,
      ' da geradzahlige Vielfache immer geradzahlig sind und durch den ersten 
      ' Schritt
      ' mit 2 sowieso herausgeflogen sind
      lStep = lCurrentPrim + lCurrentPrim
      For i = lCurrentPrim * 3 To lBisZahl Step lStep
        bitPrim.Bit(i) = True
      Next i
    End If
  Next lCurrentPrim
 
  lEnde = GetTickCount
  sOut = "Dauer der Berechnung: " & lEnde - lStart & "ms" & vbCrLf
  MsgBox sOut
End Sub
Um ein Durchlaufen des Array zum initialisieren zu Vermeiden, werden nicht die Primzahlen auf TRUE gesetzt, sondern alle anderen. Soll heißen, die Primzahlen im Array behalten den Wert FALSE.
Außerdem Hab ich noch die "toten" Variablen vom testen rausgenommen und ein paar Kommentare eingefügt.

Gruß
Mahobi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Warum Speicherbedarf für boolean 2 bytes 1.772hobby_programmer03.07.04 23:34
Re: Warum Speicherbedarf für boolean 2 bytes 1.237JennyB04.07.04 09:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.213hobby_programmer04.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.389E704.07.04 18:18
Re: Warum Speicherbedarf für boolean 2 bytes 1.218LonelySuicide66604.07.04 21:59
Re: Warum Speicherbedarf für boolean 2 bytes 1.147hobby_programmer04.07.04 22:01
Re: Warum Speicherbedarf für boolean 2 bytes 1.172E705.07.04 18:36
Re: Warum Speicherbedarf für boolean 2 bytes 1.073LonelySuicide66606.07.04 17:02
Re: Warum Speicherbedarf für boolean 2 bytes 1.571ModeratorMartoeng05.07.04 19:43
Re: Warum Speicherbedarf für boolean 2 bytes 1.146E705.07.04 20:31
Re: Warum Speicherbedarf für boolean 2 bytes 1.151ModeratorMartoeng05.07.04 21:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.160Snof06.07.04 00:03
Re: Warum Speicherbedarf für boolean 2 bytes 1.140ModeratorMartoeng06.07.04 09:49
Was ich mir vorstellen könnte...1.129ModeratorMartoeng05.07.04 19:51
Re: Was ich mir vorstellen könnte...1.043hobby_programmer06.07.04 15:39
Re: Was ich mir vorstellen könnte...1.055LonelySuicide66606.07.04 17:05
Re: Was ich mir vorstellen könnte...1.147E706.07.04 19:22
Re: Was ich mir vorstellen könnte...1.048LonelySuicide66606.07.04 21:12
Re: Warum Speicherbedarf für boolean 2 bytes 1.185Mr. Fox07.07.04 09:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.081Mahobi08.07.04 11:24
Re: Warum Speicherbedarf für boolean 2 bytes 1.045hobby_programmer08.07.04 13:25
Re: Warum Speicherbedarf für boolean 2 bytes 1.150Mahobi08.07.04 14:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.000hobby_programmer08.07.04 17:50
Re: Warum Speicherbedarf für boolean 2 bytes 989Mahobi09.07.04 08:53
Re: Warum Speicherbedarf für boolean 2 bytes 1.016ModeratorMartoeng09.07.04 09:34
Re: Warum Speicherbedarf für boolean 2 bytes 974Mahobi09.07.04 12:21
Re: Warum Speicherbedarf für boolean 2 bytes 984Mr. Fox08.07.04 20:34
Re: Warum Speicherbedarf für boolean 2 bytes 1.121Mahobi09.07.04 12:47
Re: Warum Speicherbedarf für boolean 2 bytes 1.145Mahobi09.07.04 18:15
Re: Warum Speicherbedarf für boolean 2 bytes 1.051Mahobi09.07.04 19:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.070hobby_programmer09.07.04 22:37
Meine Zahlen1.052Snof10.07.04 01:53
groooßer Fehler.1.053Snof10.07.04 03:07
Re: Warum Speicherbedarf für boolean 2 bytes 1.031Mahobi10.07.04 00:47
Re: Warum Speicherbedarf für boolean 2 bytes 977hobby_programmer10.07.04 13:11
Re: Warum Speicherbedarf für boolean 2 bytes 1.017E710.07.04 14:57

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel