Suche schnellen Zufallszahlengenerator (was: [Ada][Gnat] Was sind 'global constructors keyed to...')
- From: Martin Klaiber <martinkl@xxxxxxxxxxxxxxxxxx>
- Date: Sun, 19 Mar 2006 22:42:43 +0100
Martin Klaiber <martinkl@xxxxxxxxxxxxxxxxxx> wrote:
Florian Weimer <fw@xxxxxxxxxxxxx> wrote:
Sieht nach einen Meßfehler aus.
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
22.51 0.70 0.70 1365788 0.00 0.00 vdp_dp__ma_random__randomX
18.01 1.26 0.56 2731586 0.00 0.00 vdp_dp__ma_random__square_mod_nX
[...]
Dass der Zufallszahlengenerator so oft aufgerufen wird, ist richtig.
Ich hätte allerdings nicht gedacht, dass das so viel Zeit frisst. Da
muss ich mir noch was anderes ausdenken...
Ich habe das Programm zwischenzeitlich weiter optimiert. Problematisch
bleiben weiterhin die Aufrufe des Ada-eigenen Zufallszahlengenerators,
die inzwischen rund 50% der Zeit fressen. Um zu verifizieren, ob es
sich dabei um einen Messfehler handelt, oder die Aufrufe tatsächlich
so lange dauern, habe ich probeweise mal was ganz Einfaches gemacht:
Ich fülle ein Array mit Zufallszahlen, es ersetzt den Generator. Wenn
ich am Ende des Arrays ankomme, bestimme ich den neuen Eintrittspunkt
in das Array per Zufall und lese es wieder bis zum Ende aus. Nach 100x
Auslesen generiere ich den Inhalt des Arrays neu. Ergebnis: der Code
läuft doppelt so schnell wie vorher, allerdings ist die Qualität der
Zufallszahlen deutlich schlechter.
Ok, nun suche ich nach einem schnellen Algorithmus für einen Generator.
Dass die Qualität/Periodendauer vermutlich im umgekehrten Verhältnis
zur Geschwindigkeit steht, davon gehe ich aus, aber vielleicht lässt
sich doch ein brauchbarer Kompromiss finden. Ich brauche Ganzzahlen im
Bereich von 1 bis 6.
Vielen Dank,
Martin
.
- Follow-Ups:
- Re: Suche schnellen Zufallszahlengenerator (was: [Ada][Gnat] Was sind 'global constructors keyed to...')
- From: Lutz Donnerhacke
- Re: Suche schnellen Zufallszahlengenerator
- From: Florian Weimer
- Re: Suche schnellen Zufallszahlengenerator (was: [Ada][Gnat] Was sind 'global constructors keyed to...')
- References:
- [Ada][Gnat] Was sind 'global constructors keyed to...'
- From: Martin Klaiber
- Re: [Ada][Gnat] Was sind 'global constructors keyed to...'
- From: Florian Weimer
- Re: [Ada][Gnat] Was sind 'global constructors keyed to...'
- From: Martin Klaiber
- [Ada][Gnat] Was sind 'global constructors keyed to...'
- Prev by Date: Re: Welche Programmiersprache?
- Next by Date: Re: Suche schnellen Zufallszahlengenerator
- Previous by thread: Re: [Ada][Gnat] Was sind 'global constructors keyed to...'
- Next by thread: Re: Suche schnellen Zufallszahlengenerator
- Index(es):
Relevant Pages
|