Question

Je codage une application Merb qui utilise une combinaison de SimpleDB et Tokyo Tyrant pour le stockage. Pour ces deux magasins de données que je suis mise en œuvre (liste) de type fonctionnalité en faisant tourner un fil pour chaque valeur dans , puis la fusion des jeux de résultats. Ayant à l'esprit que ceci est une application web, est-il une limite au nombre de threads je créerez? Ruby 1.8.7, ils sont donc pas le noyau threads.

Était-ce utile?

La solution

Threads semble comme une mauvaise approche pour ce que vous essayez de faire ici, et si vous ne pouvez pas utiliser JRuby, je venais de déposer les fils tout à fait. Cependant, vous pouvez créer un fichier Ruby chargement de la base de données et utiliser la bibliothèque de référence pour faire une analyse comparative sur le numéro est le plus rapide. Vous voulez sans doute regarder la mémoire utilisée aussi.

Autres conseils

Pour me semble votre problème IO lié, si plusieurs enfilant un seul noyau peut aider.

La plupart du temps dans votre boucle principale Ruby, vous serez probablement en attente de tyran tokyo et DB simple qui sont en cours d'exécution dans le processus multi-thread séparé.

Alors, combien de fils? Qui sait? Vous allez avoir à référence et mesure .

Si vous utilisez l'IRM puis l'utilisation de threads dans de tels cas ne seront pas d'une grande aide que l'IRM utilise des fils verts qui ne sont pas utiles en ce qui concerne les opérations de calcul. Je crois à l'aide JRuby (Les threads natifs) sera utile alors. J'entends que pour les fils natifs, il est préférable d'utiliser (nombre de cœurs + 1) pour utiliser des noyaux disponibles.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top