Salut tout le monde,
Je veux generer 10 000 fichiers txt en meme temps. Je veux une solution tres
performante ! Combien de threads (windows application c#) dois-je creer?
Y a-t-il une meilleure solution ?
Salut tout le monde,
Je veux generer 10 000 fichiers txt en meme temps. Je veux une solution tres
performante ! Combien de threads (windows application c#) dois-je creer?
Y a-t-il une meilleure solution ?
tu veux pas un coca et une paille en plus
à mon avis, si tu dois créer 10000 fichiers, c'est pas sur que faire du multithreading soit vraiment une solution plus performante
De toute façon, à moins d'avoir plusieurs core et peut-etre faire de l'extension parallele (programmation parallèle), je vois pas là ou tu vas gagner du temps.
A mon avis, écrire les 10000 fichiers séquenciellement, c simple, facile et aussi rapide que de "galérer" avec des threads sans perte de perfo je pense (quasi sur)
The Monz, Toulouse
Expertise dans la logistique et le développement pour
plateforme .Net (Windows, Windows CE, Android)
Heu... chaque processeur n'a qu'une dizaine de registres... donc générer 10 000 fichiers en même temps est impossible
Je suppose donc que ce que tu veux faire c'est les générer le plus rapidement possible
Il faudrait que tu nous donnes un peu plus d'informations sur la façon dont tu les crée, leur format, leur contenu, leur taille approximative....
Il y a toujours au moins deux solutions à un problème.
http://software-design-development.blogspot.com/
Je dois generer des DTDs aleatoires d'un fichier XML. A chaque fois, je dois selectionner d'une maniere aleatoire des elements du fichier XML et generer correctement le DTD. Je repete cela pour 10 000 fois par exemple.
Quelle est la meilleure solution?
J'ai cree deux threads, chaque thread genere sequentiellement 5000 fichiers. Je le trouve plus performant que de generer les 10 000 sequentiellement.
créer le contenu de tous les fichiers sur plusieurs thread (plusieurs centaines ca reste faisable) le threadpool peut etre pratique pour ca
par contre pour les écrire sur le disques, mieux vaut un seul thread
le disque dur sera plus lent pour faire plusieurs choses en meme temps qu'une seule
par exemple, les x thread qui remplissent une collection, et le thread d'écriture qui vide la collection 1 par 1
Si je cree un seul thread, ca prend 10 mns pour generer les 10 000
si je cree deux threads, ca prend 5 mns :S si je cree plus de 2 threads, ca prend un peu plus de temps mais reste moins que 10 mns;
Il y a toujours au moins deux solutions à un problème.
http://software-design-development.blogspot.com/
nb de coeurs ca veut dire quoi en anglais ?
-- Processor: 2GHz, Memory(RAM): 2 GB
oui c'est dual core Bon j'ajoute que:
avec un nombre de DTD a peu pres 1000: 2 threads est le nombre le plus performant.
avec un nombre de DTD a peu pres 10 000: plus de 2 threads est une solution performante..
je continue a tester
Tu peux utiliser ceci pour renvoyer le nombre de coeurs existant sur la machine courante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Environment.ProcessorCount;
Il y a toujours au moins deux solutions à un problème.
http://software-design-development.blogspot.com/
oui c'est 2
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager