Ottimizza la memoria lavorando con molti datiCiao !
Sto iterando molte analisi in un ciclo, come milioni, e ho bisogno di memorizzare i risultati. Questi risultati sono valori di testo e valori numerici. Finora ho archiviato i risultati in una tabella di dati, ma all'aumentare delle dimensioni della tabella aumenta anche la memoria e la velocità delle analisi tende a diminuire.
Sto cercando un modo per risparmiare tempo e memoria.
Il tavolo è già in privato (come suggerito in un altro topic del forum); lo rende migliore ma non è sufficiente.
Ho provato a salvare la mia variabile di testo in un elenco e quelle numeriche in un vettore (è abbastanza efficiente per R). Forse ho sbagliato ma qui sembra aumentare il tempo del ciclo.
Qualcuno ha una buona idea?
Sto usando Jmp 14 ma posso avere accesso a JMP 16.
Automazione e scriptingRi: Ottimizza la memoria lavorando con molti datiQuali piattaforme specifiche stai utilizzando? JMP 16 e 17 hanno migliorato la velocità di molte piattaforme.
Inoltre, puoi utilizzare la funzione HP Time() per testare le iterazioni. Alcune buone discussioni lo sono Qui E Qui .
Ri: Ottimizza la memoria lavorando con molti datiAggiunta a @Jed_Campbell risposta di , puoi anche utilizzare la funzione di profilatura in JMP Debug per determinare dove sono i colli di bottiglia.
Ri: Ottimizza la memoria lavorando con molti datiSe stai esaurendo la memoria, fai attenzione alle tabelle di dati private che hai dimenticato di chiudere. (prova a renderli invisibili anziché privati per assicurarti di averli chiusi. Invisibile appare ancora nella finestra iniziale.)
Se JMP viene eseguito sempre più lentamente
- se hai un desktop vecchio stile con una luce del disco, tienilo d'occhio per vedere se rimane acceso molto. Potresti creare matrici davvero grandi. J(10000) crea una matrice 2D (non 1D).
- se stai costruendo una stringa o una matrice concatenando fino alla fine, ciò diventa molto lento man mano che la stringa o la matrice si ingrandiscono. Pre-assegnare la matrice alla giusta dimensione o utilizzare un elenco di parti di stringa seguite da concatitems() al termine.
Usa il profiler del debugger JSL come @Mark_Bailey suggerisce.
Wrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoWrench, Clock, GoChiave inglese, orologio, vai
Se sei fortunato, ci sarà un evidente hotspot che potrebbe corrispondere a qualcosa sopra.
Ri: Ottimizza la memoria lavorando con molti datiUso la piattaforma Kmean (e apro e chiudo report lungo il processo).
Sono solito usare tick second() , non sapevo di Hp time() . Sembra essere simile?
Controllerò le discussioni che hai individuato grazie.
Ri: Ottimizza la memoria lavorando con molti datiGrazie Craige, questo è davvero un buon consiglio, non avevo idea che la pre-allocazione delle dimensioni sarebbe stata d'aiuto!
Sono abbastanza sicuro che non si tratti di tabelle che ho dimenticato di chiudere perché avevo un passaggio nel mio script in cui le mie tabelle erano visibili.