Accueil > Forum > > > > Algorithme performant croisement fichier Email
Algorithme performant croisement fichier Email
mercredi 24 décembre 2008 à 13:46:48 |
Algorithme performant croisement fichier Email

vladam
|
Bonjour, J'ai deux fichiers texte, avec dans chacuns d'eux une liste de mail. Le premier est la liste complète de mes abonnés (newsletter) et le second est la liste des abonnés ayant ouvert ma dernière newsletter. les fichiers sont des fichiers texte, avec un mail par ligne (pas de séparateur, juste un retour à la ligne pour chaque record). Je veux faire une fonction me permettant de ressortir la liste de tous les Email, n'yant pas ouvert ma newsletter. Donc : Je veux comparer le fichier A avec le fichier B pour ressortir tous les mails du fichier A qui sont aussi dans le fichier B. Je suis sûr qu'il existe un algorithme dans existant pour optimiser au maximum le temps de traitement (ma fonction doit exécuter cela le plus rapidement possible, avec + de 130 000 records dans chaque fichier). Merci pour votre aide, pour ceux qui connaissent. vladam(pour vous servir :) )
|
|
mercredi 24 décembre 2008 à 14:07:32 |
Re : Algorithme performant croisement fichier Email

nhervagault
|
Salut,
Avec une requete linq c'est surement possible ;-) Avec le mot cles EXCEPT
L'optimisation est faite je crois par les yield qui sont générés par le compilateur.
Bon coding
|
|
jeudi 25 décembre 2008 à 10:44:04 |
Re : Algorithme performant croisement fichier Email

Bidou
|
Réponse acceptée !
C'est possible, mais je ne pense pas que LINQ soit une très bonne idée car il fera de bête comparaisons entre tout les éléments... Il doit y'avoir moyen de faire mieux, peut-être en rangeant les éléments dans une hashtable (pour la clef, éven. la première lettre de l'adresse eMail?). 
- Blog- - Site Perso-
|
|
vendredi 26 décembre 2008 à 12:06:20 |
Re : Algorithme performant croisement fichier Email

vladam
|
Bonjour,
Je ne veux pas utiliser LINQ, car au niveau optimisation, c'est très moyen. Disons que LINQ n'est pas vraiment fait pour faire ça, même s'il peut se connecter a des fichiers textes. L'idée du HashTable n'est pas bête en effet, mais peut-il tenir plusieurs centaines de milliers de record, pas sur ...
vladam (pour vous servir :) )
|
|
vendredi 26 décembre 2008 à 12:52:50 |
Re : Algorithme performant croisement fichier Email

nhervagault
|
Pour linq,
Je ne pensais pas a travailler sur le fichier texte directement, mais en chargeant les lignes dans une list<string>
En suite pour la hashtable tu es limité à la taille de ta mémoire pour pas avoir trop de perte de performance tu peux à l'instanciation choisir une capacity importante de facon ca ce que cette derniere ne soit pas recalculer quand les paniers sont trop pleins.
De toute facon, tu peux tenter les deux méthodes et comparer les résultat au niveau temps (avec un stopwatch) et occupation memoire.
Bon courage
|
|
vendredi 26 décembre 2008 à 14:51:26 |
Re : Algorithme performant croisement fichier Email

vladam
|
Voila, ça tourne !
Je charge le premier fichier (le plus gros) en mémoire dans des listes de ma création (liste chainées encapsulées dans une liste chainée circulaire). Cela me permet d'associer une liste d'index en plus avec les domaines. La première liste chainée circulaire me permet d'indexer la première lettre des émails. Chaque éléments de cette liste circulaire est une liste simple de ses composants. Pendant le chargement, je place aussi tous les domaines différents dans un HashTable afin de générer à la fin une table d'index. Top performance ;) c'est plus une conception de type C++, mais c'est plus performant qu'en utilisant le framework.Net uniquement.
vladam (pour vous servir :) )
|
|
Cette discussion est classée dans : fichier, liste, fichiers, email, algorithme
Répondre à ce message
Sujets en rapport avec ce message
Probleme avec une checkedlistbox [ par ephilas ]
Bonjour, je viens de me mettre au c# et je suis bloqué. Je suis en train de faire un programme permettant de telecharger une liste de fichiers, la l
tant que non fin de fichier [ par Kbitnik ]
BitnikBonjour, je dois réaliser comme projet un petit questionnaire en console application qui consiste à cr
Datagrid et plusieurs fichiers XML [ par sergio297 ]
Salut a tous,Je debute avec C#.NET, merci d'etre indulgent...J'ai un certain nombre de fichiers XML dont la structure est la meme. Mon but est de cree
Lecture en streaming d'un fichier mp3. [ par LocalStone ]
Bonjour, Je mets "Lecture en streaming d'un fichier mp3.", mais je sais même pas si j'emploie le bon terme ... Donc je vais m'expliquer correctement.
fichier d'exportation .exp à importer [ par ratsimisampy ]
salut à tous, Quelqu'un pourrait-il me donner des informations sur les fichiers à extension .exp? en fait mon appli devrai récupérer des données cont
[C#] gerer une liste à partir d'un fichier xml [ par iow4 ]
bonjour, dans une de mes appliquations j'aimerais gerer une "liste verte" comme sur cette exemple : http://img97.imageshack.us/img97/5669/image19aw.jp
problème lors de la mise à jour de mes fichiers sur serveur [ par mathmax ]
Bonjour,J'ai un problème lors de la mise à jour de mes fichiers sur mon serveur avec un programme C#. J'utilise en gros ce bout de code là :http://msd
qu'est ce qu'un fichier .resx ? [ par hlayachi ]
Bonjour à tous,1) Je trouve des fois dans des codes sources que je télécharge des fichiers .resx et quand j'ouvre l'application avec VS.Net ces fichie
Acces fichiers... conflits !!! [ par SW_87 ]
Bonjour , Je développe plusieurs petites applications en C# (asp.net) qui écrivent et lisent dans des fichiers txt. Malheureusement lorsqu
Lister un répertoire du net [ par Online ]
Bonjour, Je voudrais savoir si quelqu'un sait comment récupérer la liste des fichiers stockés dans un répertoire sur un serveur web <FONT face=Verdana
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Magic
Entre 429€ et 429€
|