Ich erstelle eine Anwendung, die an andere Wissenschaftler verteilt werden soll. Die Anwendung nimmt drei vom Benutzer übermittelte Parameter entgegen und gibt eine Liste von Daten und Codes aus, die sich auf diese Ereignisse beziehen. Ich habe das mit einem Dictionary erstellt und wollte die Anwendung so erstellen, dass das Dictionary aus einer Pickle-Datei geladen wurde, wenn die Anwendung danach verlangte. Die vom Benutzer bereitgestellten Parameter werden zum Suchen der benötigten Ausgabe verwendet.Was ist die am wenigsten ressourcenintensive Datenstruktur, die mit einer Python-Anwendung verteilt werden soll?
Ich habe diese Struktur ausgewählt, weil ich mich mit Wörterbüchern und Pickle-Dateien ziemlich wohl gefühlt habe, und ich sehe, dass dies mit der kleinsten Lernkurve von mir ausgeht. Es kann bis zu zwei Millionen Schlüssel im Wörterbuch geben. Ich war mit der Leistung meiner Maschine mit einer vernünftigen Untermenge zufrieden. Ich habe schon darüber nachgedacht, wie ich das Wörterbuch auseinanderreißen kann, wenn ich irgendwelche Leistungsbedenken habe, wenn das Ganze zusammengefügt wird. Ich bin nicht wirklich besorgt über die Menge an Speicherplatz auf ihrer Maschine, da wir mit Terabyte Speicherwerten arbeiten.
Nachdem ich all das gesagt habe, stöbere ich in der Dokumentation herum und frage mich, ob ich etwas Zeit investieren muss, um eine alternative Datenspeicherdatei zu lernen und zu implementieren. Der einzige Grund, an den ich denken kann, ist, ob es eine Alternative gibt, die die Suchgeschwindigkeit um einen Faktor von drei bis fünf oder mehr erhöhen könnte.
ich nicht ganz folgen. Beginnen Sie während der Ausführung mit dem Lesen der gesamten Datendatei im RAM oder möchten Sie Ihre Daten für jede Abfrage auf dem Datenträger nachschlagen? Möchten Sie eine schnellere Festplatte in den Arbeitsspeicher oder eine schnellere Benutzereingabe für die Programmausgabe? Es scheint, dass die meisten Antworten darauf abzielen, wie Sie Ihre Daten persistent machen, aber ich dachte, dass Ihre Frage war, wie man Suchvorgänge schneller machen kann? – tom10