Avere due serie di dati che cambiano di rado o convertiti al volo

2

Attualmente sto lavorando a un piccolo progetto in cui lavoro con alcuni "dati statici", che vengono estratti da un'unica fonte. I dati potrebbero cambiare di volta in volta (fino a una volta alla settimana). Non ho bisogno di tutte le informazioni che i dati includono nel mio progetto in modo da consentire un accesso più semplice e più logico ad esso Ho scritto un piccolo strumento che converte i dati estratti nel mio formato desiderato.

La conversione consiste principalmente nell'eliminare i dati che non mi servono e dividere alcune stringhe in array. Nessun calcolo intensivo o altro. Ma, faccio cadere più del 50% dei dati originali perché non ce n'è bisogno.

Dato che i dati statici sono dati statici, sarebbe più sensato archiviare i dati convertiti e fare tutte le ulteriori operazioni da questi dati o avrebbe più senso convertire da dati non elaborati al volo?

Poiché il progetto è in JavaScript, la velocità è ovviamente importante, ma se la conversione al volo presenta vantaggi significativi, potrebbe essere più sensato seguire tale approccio.

Sono dati statici di un gioco per computer che definisce diverse unità e altri oggetti all'interno del gioco. Sono archiviati in JSON quindi posso facilmente usarli in JavaScript. Ma non ho bisogno di molte informazioni, solo alcune parti di esso per costruire una sorta di "enciclopedia", dato che i dati sono già presenti in JSON mi chiedevo se dovessi semplicemente usarlo o convertirlo prima dell'uso.

    
posta clentfort 20.09.2012 - 12:40
fonte

3 risposte

4

In generale, la duplicazione è un male più grande delle cattive prestazioni. La risposta dipenderà generalmente dal fatto che la performance sia abbastanza buona con la conversione al volo. Dovrai capire da solo quella parte. Attenersi all'attuale implementazione finché non si ha la prova che è troppo lento; non ottimizzarlo perché ritieni che sia troppo lento.

Un approccio alternativo potrebbe essere quello di prendere il codice al volo e creare un pre-processore, che emette il set di dati ridotto. È quindi possibile eseguire questo codice come parte del processo di compilazione. Il vantaggio è che il set di dati di base non è (realmente) duplicato e ottieni vantaggi in termini di prestazioni. Inoltre, mi rendo conto che questo codice è in JavaScript, ma ci sono modi per far funzionare JS sul tuo computer di sviluppo durante la "build".

    
risposta data 20.09.2012 - 13:20
fonte
1

Scrivo un processo di conversione dei dati eseguito su un timer . (Una volta al giorno o una volta alla settimana.) Una volta completata la conversione dei dati, genera un file JSON da esso rilasciatelo sul server Web, sovrascrivendo il file JSON precedente.

    
risposta data 20.09.2012 - 14:54
fonte
0

Sembra che tu stia propendendo per prestazioni migliori, quindi preferiresti archiviare i dati e assicurarti di aggiornare la versione memorizzata solo in caso di modifiche. Ovviamente questo approccio può porre le proprie sfide come il controllo della versione e mantenere i dati sincronizzati se lo si desidera.

Se l'integrità dei dati è di assoluta importanza, devi piuttosto convertire subito e compromettere un po 'le prestazioni.

Siediti e pensa cosa dovrebbe fare la tua applicazione e cosa è più importante per le persone che useranno il software. Velocità o integrità dei dati?

    
risposta data 20.09.2012 - 15:01
fonte

Leggi altre domande sui tag