edel: Ist das nicht noch einer von den "alten" Phenoms mit dem Translation-Lookaside-Buffer-Fehler? Soweit ich weiss kostet der nötige Workaround (ist im BIOS implementiert) einen Haufen Leistung/Geschwindigkeit.
//EDIT: Siehe auch:
http://de.wikipedia.org/wiki/Phenom#Errata
Fast Hashtable
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
Zuletzt geändert von hardfalcon am 08.12.2008 22:47, insgesamt 1-mal geändert.
Ich habe es nur kurz überflogen, daher sorry wenn ich was falsch vorweg nehmen sollte, aber ...Ich habe das ganze auf Speed optimiert, das ist wohl die schnellste Hashtable die je in PB geschrieben worden ist.
Als Basis diente mir dabei diese geniale Hashtable von Inc:
http://www.purebasic-lounge.com/viewtop ... c&start=12
sorry, und mit allen Respekt für deine 'Weiterentwicklung': Anstatt am bereits vorhandenen Projekt Feedback zu geben, und Testergebnisse in jenem Thread auch nur ansatzweise weiterzugeben und dort mir zu helfen, was die Weiterentwicklung angeht, machst du hier einem neuen Thread auf, wo das Ding mit ein paar Änderungen erneut vertrieben wird.
Ja, es ist ein Link zum Original-Thread vorhanden, aber mal ehrlich ... so ganz die nette Art ist das nicht

Zuletzt geändert von inc. am 08.12.2008 22:59, insgesamt 1-mal geändert.
Hier gibts die OOP Option für PureBasic.
@edel:
Verstell mal die Start-Blockgröße auf was anderes (viiiel größeres), sollte helfen.
@inc:
Sorry wenn du das in den falsche Hals gekriegt hast. Ich hab groß in den ersten Thread und in jeden Source geschrieben wo ich die Basis herhab.
Wollte dir nicht deine Arbeit stehlen.
Ich habe einiges modifiziert (Object-Managemant raus => mehr Speed, Asm => Mehr Speed, Hashing - Alog fix und nicht mehr wählbar => mehr Speed, variable Blockgröße bei jeder HT, delete raus => mehr Speed,Count raus, Exists rein, anderer Prime-Algo).
Ich hab deine HT eben an PX angepasst wie ich sie brauchte und verbessert. Ich hab sogar auf die PX Seite geschrieben das ich die verwende: http://www.paladiumx.forgesoft.net/inde ... 2&Itemid=3
Sorry wenn das so rübergekommen ist als wollte ich dir deinen Source klauen.
Verstell mal die Start-Blockgröße auf was anderes (viiiel größeres), sollte helfen.
@inc:
Sorry wenn du das in den falsche Hals gekriegt hast. Ich hab groß in den ersten Thread und in jeden Source geschrieben wo ich die Basis herhab.
Wollte dir nicht deine Arbeit stehlen.
Ich habe einiges modifiziert (Object-Managemant raus => mehr Speed, Asm => Mehr Speed, Hashing - Alog fix und nicht mehr wählbar => mehr Speed, variable Blockgröße bei jeder HT, delete raus => mehr Speed,Count raus, Exists rein, anderer Prime-Algo).
Ich hab deine HT eben an PX angepasst wie ich sie brauchte und verbessert. Ich hab sogar auf die PX Seite geschrieben das ich die verwende: http://www.paladiumx.forgesoft.net/inde ... 2&Itemid=3
Sorry wenn das so rübergekommen ist als wollte ich dir deinen Source klauen.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Ich unterstelle dir kein Klauen. Aber wenn etwas von mir (und den anderen dort) entwickelt oder weiterentwickelt wird, hätte ich es klasse gefunden, wenn es da in der Originalentwicklung ein Feedback gegeben hätte. Thats all.
Hier gibts die OOP Option für PureBasic.
Rev B3hardfalcon hat geschrieben:edel: Ist das nicht noch einer von den "alten" Phenoms mit dem Translation-Lookaside-Buffer-Fehler? Soweit ich weiss kostet der nötige Workaround (ist im BIOS implementiert) einen Haufen Leistung/Geschwindigkeit.
//EDIT: Siehe auch:
http://de.wikipedia.org/wiki/Phenom#Errata

@cxAlex
Ok es ist jetzt etwas schneller, dafuer ist aber auch der
Speicherverbrauch sehr hoch, selbst wenn ich da nichts
reinpacke. Kann man das nicht irgendwie dynamisch
anpassen, oder was waere denn ein guter Mittelwert??
Du könntest das 2/3 Anpassen an 1/1 also er reallokieren wenns ganz voll ist. Desto größer die Blockgröße desto mehr Speicher braucht man, aber desto weniger oft muss man realokieren, da muss man für jedem Fall einen passenden Mittelweg finden.
// Edit: @Edel: wie langsam ist es den Bei dir? bei mir Brauchen 25.000 Einträge zum schreiben 16 ms.
// Edit: @Edel: wie langsam ist es den Bei dir? bei mir Brauchen 25.000 Einträge zum schreiben 16 ms.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster
PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86