Domanda

Sono codifica un'applicazione Merb, che utilizza una combinazione di SimpleDB e Tokyo Tiranno per la conservazione. Per entrambi questi archivi dati sto implementando IN (elenco) tipo a funzionalità facendo girare un thread per ogni valore in e quindi unendo i set di risultati. Tenendo presente che si tratta di un'applicazione web, c'è un limite al numero di thread che dovrei essere la creazione? Rubino 1.8.7, quindi non sono kernel thread.

È stato utile?

Soluzione

Le discussioni sembra un cattivo approccio per quello che stai cercando di fare qui, e se non è possibile utilizzare JRuby, avevo appena cadere i fili del tutto. Tuttavia, è possibile creare un file di rubino il caricamento del database e utilizzare il href="http://ruby-doc.org/stdlib/libdoc/benchmark/rdoc/index.html" rel="nofollow noreferrer"> biblioteca di riferimento per fare un po 'di benchmarking su cui numero è il più veloce. Probabilmente si vuole guardare la memoria utilizzata troppo.

Altri suggerimenti

Per me il problema suona IO legato, in modo più infilare un singolo core può dare una mano.

La maggior parte del tempo nel vostro ciclo principale di Ruby si sarà probabilmente in attesa su tokyo tiranno e semplice DB che sono in esecuzione in processo multi-thread separato.

Così come molte discussioni? Chissà? Si sta andando ad avere per punto di riferimento e di misura .

Se si sta utilizzando la risonanza magnetica quindi utilizzando le discussioni in questi casi, non sarà di grande aiuto come RM utilizza fili verdi che non sono utili quando si tratta di operazioni di calcolo. Credo che con JRuby (thread nativi) sarà utile poi. Continuo a sentire che per i thread nativi è meglio usare (numero di core + 1) di utilizzare i core disponibili.

scroll top