Snel zoeken van namen
Geplaatst: di 13 okt 2009, 10:25
Ik heb een snel zoek systeem gemaakt voor namen van verschillende software onderdelen.
Alles staat gewoon door elkaar.
Het werkt met een xor methode dat uit de naam wordt afgeleidt.
Het schrijven kan ook snel gebeuren met dit systeem.
Als een naam wordt opgezocht dan wordt er een adres berekend met de xor methode.
Dit geheugen met adres wordt doorlopen, het bestaat uit elementen met codering en een adres
De elementen worden getest op de codering van het onderdeel waaronder de naam valt.
Indien overeenkomend zal een procedure, behorend bij de codering, worden opgeroepen die met het adres test of de naam overeenkomend is.
(er is de mogelijkheid om eerst de opgeslagen naam te converteren)
Momenteel heb ik voor mijn compiler een ruimte voor 2048 adressen genomen.
Ik wil dit verhogen zodat een groot software programma (rond de 200.000 regels) met alle poespas erom heen ongeveer gemiddeld maar 4 elementen per adres nodig heeft.
Hoeveel adressen moet ik instellen?
Hoeveel namen komt gemiddeld in een 200.00 regels programma voor?
Als dit N is komen we uit op ongeveer:
adressen=(N/4)*1.2
En we hebben het liefst een antwoord dat voldoet aan 2^X.
Met een 6 gigabyte computer is deze vraag eigenlijk irrelevant maar ik vind het onnodig om geheugen te verbruiken als het niet nodig is, andere software heeft ook geheugen nodig.
Ik zit zelf te denken aan 16384 adressen.
Alles staat gewoon door elkaar.
Het werkt met een xor methode dat uit de naam wordt afgeleidt.
Het schrijven kan ook snel gebeuren met dit systeem.
Als een naam wordt opgezocht dan wordt er een adres berekend met de xor methode.
Dit geheugen met adres wordt doorlopen, het bestaat uit elementen met codering en een adres
De elementen worden getest op de codering van het onderdeel waaronder de naam valt.
Indien overeenkomend zal een procedure, behorend bij de codering, worden opgeroepen die met het adres test of de naam overeenkomend is.
(er is de mogelijkheid om eerst de opgeslagen naam te converteren)
Momenteel heb ik voor mijn compiler een ruimte voor 2048 adressen genomen.
Ik wil dit verhogen zodat een groot software programma (rond de 200.000 regels) met alle poespas erom heen ongeveer gemiddeld maar 4 elementen per adres nodig heeft.
Hoeveel adressen moet ik instellen?
Hoeveel namen komt gemiddeld in een 200.00 regels programma voor?
Als dit N is komen we uit op ongeveer:
adressen=(N/4)*1.2
En we hebben het liefst een antwoord dat voldoet aan 2^X.
Met een 6 gigabyte computer is deze vraag eigenlijk irrelevant maar ik vind het onnodig om geheugen te verbruiken als het niet nodig is, andere software heeft ook geheugen nodig.
Ik zit zelf te denken aan 16384 adressen.