|
Bas de page | |
---|---|
Auteur | Sujet : [Ocaml] lecture d'un fichier texte de > 50 Mo (resolu) |
Publicité | Posté le 17-05-2007 à 07:21:03 |
el muchacho Comfortably Numb | C'est sans doute parce que cherche_string_char est récursive que c'est très lent et que ça plante. Tu fais péter la pile.
|
poli | je pouvais faire une fonction non recursive mais je croyais que Ocaml en tant que langage fonctionnel preferait la recursivite a l'imperatif (while,for) mais tu as raison la simple lecture est tres rapide.
la logique est la suivante Message cité 1 fois Message édité par poli le 17-05-2007 à 20:01:04 |
poli | je l'ai modifiee et c'est tombe a 1 minutes 27
Message édité par poli le 17-05-2007 à 21:45:04 |
el muchacho Comfortably Numb |
Perso, j'aurais commence par jeter un coup d'oeil aux flots d'Ocaml pour une telle application. Il y a aussi la possibilite d'une liste chainee de caracteres, mais a priori, les flots me semblent appropries. Message édité par el muchacho le 17-05-2007 à 23:11:56 |
poli | je ne savais meme pas que les flots existaient, mais c'est vraiment interessant car je souhaite le code le plus optimal possible meme si rtab contient au maximum 300 caracteres.
|
poli |
|
el muchacho Comfortably Numb | J'ai verifie si Ocaml n'avait pas une faiblesse au niveau des fichiers, mais a priori, ca n'est pas le cas. Tu as encore plusieurs pistes a suivre: 2. compiler en natif plutot qu'en bytecode Message édité par el muchacho le 18-05-2007 à 09:59:23 |
poli | Je vais essayer de modifier leur code merci pour tes conseils el muchacho |
poli | je te remercie El muchacho |
Publicité | Posté le 19-05-2007 à 18:21:02 |
Taz bisounours-codeur | tu ne veux pas plutot sortir un profiler ? Parce que bon, mettre en cache le fichier c'est le boulot du noyau. La bibli entre les deux doit faire tampons pour minimiser les appels systèmes. Vu les temps que tu annonces, ton programme est clairement bridé par le CPU, et pas par les E/S. Donc vraiment, sort un profiler et cherche qui crame des cycles. |
poli | voici le profiling en code-octect j'ai essaye en native j'ai bien le fichier gmon.out mais je parviens a le lire avec gprof
Message édité par poli le 21-05-2007 à 15:11:27 |
Taz bisounours-codeur | c'est illisible comme truc. (ton algo aussi d'ailleurs) |
poli | pourquoi les seuls commentaires proviennent de ocamlprof.il y a 3 fonctions, la premiere evalue la correspondance entre les string au niveau des caracteres, la deuxieme(cat_grep) englobe la troisieme (cat_grep_corps) (c'est pour eviter eviter le warning This fonction should be unit).je vais mieux l'indenter! |
el muchacho Comfortably Numb | Salut, je n'ai pas lu ce topic depuis longtemps, désolé de ne pas avoir répondu. Niveau perfs, ça n'est pas suffisant ? ps: Je trouve que tu abuses des fonctions définies les unes au sein des autres, ça rend ton code excessivement difficile à lire. Message édité par el muchacho le 26-05-2007 à 22:45:50 |
Sujets relatifs | |
---|---|
Charger une liste à partir d'un fichier | [VB/TSQL/SQL-Server] Mes questions sur les Procédures stockées |
upload de fichier sur un sftp | aller a la ligne dans un fichier texte |
[RESOLU] ant build.xml LD_LIBRARY_PATH | [RESOLU] Erreur 1452 : Cannot add or update a child row |
[JavaScript] Copier du texte dans le presse papier avec Firefox | [PHP] problème d'écriture dans un fichier |
Code VBA ouverture fichier!! | |
Plus de sujets relatifs à : [Ocaml] lecture d'un fichier texte de > 50 Mo (resolu) |