Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 2006
-
13 oct. 2003 à 20:26
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
12 juin 2005 à 21:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 12 juin 2005 à 21:25
Bien entendu ça n'aurait aucun intérêt employé juste comme cet exemple, c'est surtout valable sur la lecture.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 juin 2005 à 21:11
C'est ca que je comprends pas: ca sert a quoi de mettre dans le cache si on ne lit qu'une fois? Ou alors j'ai pas compris le principe du cache
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 12 juin 2005 à 21:09
FILE_FLAG_SEQUENTIAL_SCAN indique de mettre les octets suivant en cache tant que faire se peut, c'est impec si on lit le fichier en continu sans mouvement de va et vient sur le fichier.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 12 juin 2005 à 14:31
A propos de cet avant dernier param de CreateFile, j'ai lu MSDN et je suis pas sur de bien avoir compris. Apparemment ca serait plus rapide quand on lit des gros blocs de manière linéaire. Mais si c'est lié au cache, et comme tu n'écris qu'une seule fois le fichier, ca change quoi exctement?
Par ailleurs, si taille d'un cluster est supérieure à ton SIZEBUFF, cela diminue-t-il les performances?
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 15 oct. 2003 à 16:05
ok ... mais bon, en general, dans un programme, tu optimise les points sensibles, en te demandant ce qui fera la difference : est ce que je dois passer en iteratif, est ce que je peux utiliser un algo dynamique (ok ici rien de tout ca mais c est un exemple) ... or ici, tu gagne quoi ? Qques cycles cpu, mais vraiment peu par rapport a ce que tu perds coté lisibilité (goto powaa), ce qui de plus n est plus vraiment necessaire de nos jours...
Mais bon si c est ton style de code, et que c est logique pour toi de coder comme ca, t as aucune raison de changer ... jdis juste ca pour faire comprendre que c est pas en ameliorant les details que tu feras de bons programmes ...
maintenant si tu utilise des goto un peu partout dans une equipe de dev, je me demande si les autres vont accepter ou bien te lyncher sur place ?...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 oct. 2003 à 18:09
gagner du temps d'ecriture, pas mon truc. Je ne cherche qu'a gagner du temps processeur, des 'goto' pour essayer de forcer le compilo a suivre ma logique: saut de code pour cas d'erreur seulement sinon execution lineaire.
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 14 oct. 2003 à 17:49
Juste une remarque
Pourquoi mettre autant de goto alors que ce n est absolument pas necessaire ?
Si c est pour gagner du temps d ecriture, t as aussi vite fait d ecrire la fonction que de mettre un goto et d y faire appel ...
Et puis ensuite, sa devient difficilement maintenable ...
mais bon, le troll sur "To Goto or not to Goto" n est pas près de ce finir, j en suis bien conscient ...
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 14 oct. 2003 à 12:57
oki, si je recommence un test + tard (on sait jamais...), je penserais a ca
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 oct. 2003 à 07:48
C'etait juste pour dire qu'il faut qu'un test ressemble le plus possible a ce qui devrait se trouver dans un prog correct. Tu devrais depuis le temps savoir qu'il y a peu d'ambiguites dans mes propos.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 13 oct. 2003 à 21:54
oups...
dsl, jsui pas très habitué a CreateFile et j'ai justement fait ce test pour voir si ca valait le coup de me convertir ;)
"je verrais un type ecrire un logiciel ainsi il prendrait la porte illico." -> vu ke je l'ai fait, comment je dois le prendre ?? (^_^)
Je suppose ke ta déja vu des trucs pire que ca nan ? (ou alors jsui vraiment nul...)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 oct. 2003 à 21:35
Regarde avant dernier param de CreateFile, important. Ensuite une repetition de 3 octets ne donne pas un test valable, je verrais un type ecrire un logiciel ainsi il prendrait la porte illico.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 13 oct. 2003 à 21:18
oki, jcompren mieu pour ca
mais j'ai encore une question, pourquoi fopen est beaucoup plus rapide que win32 ds mon test alor que j'ai un appel a cette dll (ce qui ne devrait pas acceléré le prog normalement) ? Serait-ce mon test qui est foireux ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 oct. 2003 à 20:37
Les differences viendront de l'etat du cache, ou se trouvait le bras ecriture au moment du lancement etc... Avec optimisation du compilo le code fopen(appel de CreateFile etc masque) est mis direct dans exe, pour cela qu'il est si gros et non dependant de msvcrt.dll. Bien entendu je preconise emploi de win32 direct, exe maigrit illico de 8 Ko au moins pour le meme resultat.
Anacr0x
Messages postés515Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention27 avril 20062 13 oct. 2003 à 20:26
c bizarre, chez moi, tes tests donne l'inverse des miens, c-a-d que le win32 est 2 fois plus rapide que les flux... Qu'est ce qui peut donner une différence aussi grande ? les différents compilateurs ?
"L'exe n'a aucune dependance sur msvcrt.dll" -> comment a tu fait ? si tu utilise fopen, il est obligé que ton prog l'utilise nan ? ou peut etre parlait tu simplement du win32
De plus, en refaisant le test avec 60000 au lieu de 6000, j'ai remarquer que (du moins chez moi) le win32 devient plus lent que le flux (pas énormément mé bon)
12 juin 2005 à 21:25
12 juin 2005 à 21:11
12 juin 2005 à 21:09
12 juin 2005 à 14:31
Par ailleurs, si taille d'un cluster est supérieure à ton SIZEBUFF, cela diminue-t-il les performances?
15 oct. 2003 à 16:05
Mais bon si c est ton style de code, et que c est logique pour toi de coder comme ca, t as aucune raison de changer ... jdis juste ca pour faire comprendre que c est pas en ameliorant les details que tu feras de bons programmes ...
maintenant si tu utilise des goto un peu partout dans une equipe de dev, je me demande si les autres vont accepter ou bien te lyncher sur place ?...
14 oct. 2003 à 18:09
14 oct. 2003 à 17:49
Pourquoi mettre autant de goto alors que ce n est absolument pas necessaire ?
Si c est pour gagner du temps d ecriture, t as aussi vite fait d ecrire la fonction que de mettre un goto et d y faire appel ...
Et puis ensuite, sa devient difficilement maintenable ...
mais bon, le troll sur "To Goto or not to Goto" n est pas près de ce finir, j en suis bien conscient ...
14 oct. 2003 à 12:57
14 oct. 2003 à 07:48
13 oct. 2003 à 21:54
dsl, jsui pas très habitué a CreateFile et j'ai justement fait ce test pour voir si ca valait le coup de me convertir ;)
"je verrais un type ecrire un logiciel ainsi il prendrait la porte illico." -> vu ke je l'ai fait, comment je dois le prendre ?? (^_^)
Je suppose ke ta déja vu des trucs pire que ca nan ? (ou alors jsui vraiment nul...)
13 oct. 2003 à 21:35
13 oct. 2003 à 21:18
mais j'ai encore une question, pourquoi fopen est beaucoup plus rapide que win32 ds mon test alor que j'ai un appel a cette dll (ce qui ne devrait pas acceléré le prog normalement) ? Serait-ce mon test qui est foireux ?
13 oct. 2003 à 20:37
13 oct. 2003 à 20:26
"L'exe n'a aucune dependance sur msvcrt.dll" -> comment a tu fait ? si tu utilise fopen, il est obligé que ton prog l'utilise nan ? ou peut etre parlait tu simplement du win32
De plus, en refaisant le test avec 60000 au lieu de 6000, j'ai remarquer que (du moins chez moi) le win32 devient plus lent que le flux (pas énormément mé bon)
J'ai du mal a comprendre tt ca moa...