Di solito sono un programmatore Python / Database e sto pensando di usare C per un problema.
Ho una serie di sequenze di 8 caratteri con 4 possibili caratteri. Il mio problema riguarda la combinazione di insiemi di queste sequenze e filtri che soddisfano un criterio. Le combinazioni di 5 corrono in miliardi di righe e impiegano circa un'ora per essere eseguite.
Quindi posso rappresentare ciascuna sequenza come 2 byte.
Se sto lavorando su un architechture a 64 bit otterrò qualche vantaggio mantenendo queste strutture dati a 2 byte quando creo le combinazioni, o lo conserverò anch'io come 8 byte / doppio? (64 bit = 8 x 8)
Se sono su un'architettura a 64 bit, tutti i registri saranno 64 bit, quindi in termini di operazioni che non dovrebbero essere più veloci (correggimi se ho torto).
Otterrò qualcosa dai requisiti di archiviazione più piccoli - posso inserire più combinazioni in memoria, o prenderanno tutti comunque 64 bit?
E infine, sono lieto di ottenere qualcosa che codifica in C. Ho una prima versione, che memorizza la sequenza come una piccola int in un database MySQL. Quindi si unisce automaticamente al tabù un numero di volte per generare tutte le combinazioni possibili. Le prestazioni sono accettabili, a seconda del numero di combinazioni generate. Presumo che il database debba comportare un sovraccarico.