quello che devo fare è questo: in fase di inizializzazione devo caricare in memoria un grafo(networkx) di dimensioni consistenti: 60.000 nodi e più di 100.000 connessioni. PER ADESSO dovrebbe essere in sola lettura e se devo fare delle modifiche posso permettermi di stoppare tutto, fare le modifiche e rilanciare l'applicazione. Poi in base alle richieste che vengono effettuate devo andare a leggere le informazioni che mi servono dal grafo, elaborarle e restituirle all'utente.
Il giorno 10 ottobre 2012 12:46, Daniele Varrazzo <p...@develer.com> ha scritto: > On 2012-10-10 11:03, Marco Beri wrote: > >> 2012/10/10 Daniele Varrazzo <p...@develer.com> >> >> On 2012-10-10 09:03, Marco De Paoli wrote: >>> >>> Inoltre può esserti d'aiuto anche un occhiata al pattern Borg di Alex >>> >>>> Martelli >>>> >>>> >>> Devo a questo cosiddetto pattern (è un'implementazione) le migliori ore >>> della mia vita buttate in debug. Da non toccare neanche con una pertica. >>> >> >> >> :-)) >> >> Cosa era successo? Più processi attivi? Race condition? >> > > Cosa deve succedere? Quello per cui è progettato: tu hai l'istanza di un > oggetto, chiami qualche funzione apparentemente non correlata e alla riga > dopo quell'istanza si comporta in maniera inconsistente da due righe prima. > Anche un programma single-thread diventa imprevedibile. > > È solo una variabile globale glorificata, ma col rischio che nasconde il > fatto di esserla. Molto meglio un singleton (il vero pattern di cui il borg > è un'implementazione): almeno è esplicito che tutti ci possono mettere le > mani e non fai assunzioni fuori luogo che sia una variabile locale. > > Per la storia, il programma in questione era Epydoc. Aggiungi il fatto che > lo stato di questi oggetti veniva modificato in maniera casuale tra un run > e l'altro, a seconda di che ordine venivano letti i sorgenti... È stato > probabilmente il bug più ''.join(unsorted('aaacccozz')) che abbia mai > trattato. Semplicemente perché un'istanza "ammalata" di borg non si > comporta come un regolare oggetto Python: a is b == False, eppure cambi a e > ti cambia anche b: un comportamento del tutto prevedibile no? > > > > -- > Daniele Varrazzo - Develer S.r.l. > http://www.develer.com > ______________________________**_________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/**mailman/listinfo/python<http://lists.python.it/mailman/listinfo/python> >
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python