J'ai fait ce petit programme qui pourra vous être utile ou
vous amuser. C'est la seconde version d'un programme qui
permet de générer la version html d'un programme VB, en
reprenant la coloration syntaxique, etc.
Le programme génère tout seul tout seule toutes les pages
html correspondant à toutes les forms, modules, etc.
Une option très sympa et très utile: Le programme permet de
générer automatiquement des hyperliens sur tous les appels
de subs ou fonctions, permettant de naviguer aisément dans
le code.
Bref, tout est la:
http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html
Un petit exmemple de code généré:
http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html
Toute remarques bienvenues!
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Picalausa François
"jean-marc" a écrit dans le message de news: 44b0ef2e$0$32422$
Hello à tous,
J'ai fait ce petit programme qui pourra vous être utile ou vous amuser. C'est la seconde version d'un programme qui permet de générer la version html d'un programme VB, en reprenant la coloration syntaxique, etc.
Le programme génère tout seul tout seule toutes les pages html correspondant à toutes les forms, modules, etc.
Une option très sympa et très utile: Le programme permet de générer automatiquement des hyperliens sur tous les appels de subs ou fonctions, permettant de naviguer aisément dans le code.
Bref, tout est la: http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html
Un petit exmemple de code généré: http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html
Toute remarques bienvenues!
Hello,
Très sympa par rapport à la v1! Et très belle illustration de l'implémentation et usage d'une hash table... (pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6 ;-) )
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile, la chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench! le bench! le bench!) (remarque, instrrev n'était pas présent dans VB5 donc la version présente a déjà l'avantage de la compatibilité et vu la manière dont le code est écrit j'opterais pour l'argument de portabilité... j'ai vu juste?)
Sinon, par InStrRev: Public Function getFile2(strPath As String) As String On Error GoTo getFile_Error
getFile_Error: getFile = "" Resume getFile_end: End Function
-- Picalausa François
"jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de news:
44b0ef2e$0$32422$ba620e4c@news.skynet.be...
Hello à tous,
J'ai fait ce petit programme qui pourra vous être utile ou
vous amuser. C'est la seconde version d'un programme qui
permet de générer la version html d'un programme VB, en
reprenant la coloration syntaxique, etc.
Le programme génère tout seul tout seule toutes les pages
html correspondant à toutes les forms, modules, etc.
Une option très sympa et très utile: Le programme permet de
générer automatiquement des hyperliens sur tous les appels
de subs ou fonctions, permettant de naviguer aisément dans
le code.
Bref, tout est la:
http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html
Un petit exmemple de code généré:
http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html
Toute remarques bienvenues!
Hello,
Très sympa par rapport à la v1! Et très belle illustration de
l'implémentation et usage d'une hash table...
(pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6 ;-) )
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile, la
chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench! le
bench! le bench!)
(remarque, instrrev n'était pas présent dans VB5 donc la version présente a
déjà l'avantage de la compatibilité et vu la manière dont le code est écrit
j'opterais pour l'argument de portabilité... j'ai vu juste?)
Sinon, par InStrRev:
Public Function getFile2(strPath As String) As String
On Error GoTo getFile_Error
"jean-marc" a écrit dans le message de news: 44b0ef2e$0$32422$
Hello à tous,
J'ai fait ce petit programme qui pourra vous être utile ou vous amuser. C'est la seconde version d'un programme qui permet de générer la version html d'un programme VB, en reprenant la coloration syntaxique, etc.
Le programme génère tout seul tout seule toutes les pages html correspondant à toutes les forms, modules, etc.
Une option très sympa et très utile: Le programme permet de générer automatiquement des hyperliens sur tous les appels de subs ou fonctions, permettant de naviguer aisément dans le code.
Bref, tout est la: http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html
Un petit exmemple de code généré: http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html
Toute remarques bienvenues!
Hello,
Très sympa par rapport à la v1! Et très belle illustration de l'implémentation et usage d'une hash table... (pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6 ;-) )
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile, la chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench! le bench! le bench!) (remarque, instrrev n'était pas présent dans VB5 donc la version présente a déjà l'avantage de la compatibilité et vu la manière dont le code est écrit j'opterais pour l'argument de portabilité... j'ai vu juste?)
Sinon, par InStrRev: Public Function getFile2(strPath As String) As String On Error GoTo getFile_Error
getFile_Error: getFile = "" Resume getFile_end: End Function
-- Picalausa François
jean-marc
"Picalausa François" a écrit dans le message de news:
"jean-marc" a écrit dans le message de
news:
44b0ef2e$0$32422$ > Hello à tous, > > J'ai fait ce petit programme qui pourra vous être utile ou > vous amuser. C'est la seconde version d'un programme qui > permet de générer la version html d'un programme VB, en > reprenant la coloration syntaxique, etc. > > Le programme génère tout seul tout seule toutes les pages > html correspondant à toutes les forms, modules, etc. > > Une option très sympa et très utile: Le programme permet de > générer automatiquement des hyperliens sur tous les appels > de subs ou fonctions, permettant de naviguer aisément dans > le code. > > Bref, tout est la: > http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html > > Un petit exmemple de code généré: > http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html > > Toute remarques bienvenues! > Hello,
Salut François,
Très sympa par rapport à la v1! Et très belle illustration de l'implémentation et usage d'une hash table... (pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6
;-) )
Merci du feedback :-) Tu as raison, j'avais enrichi mon kw.txt en récupérant une liste sur le net, je n'ai pas fait attention :-) Je vais mettre ça à jour!
Pour la hashTable, l'implémentation est okay, il me reste à en faire une jolie classe...
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile,
la
chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench!
le
bench! le bench!)
Pour le bench, voir la fin du post :o)
(remarque, instrrev n'était pas présent dans VB5 donc la version
présente a
déjà l'avantage de la compatibilité et vu la manière dont le code est
écrit
j'opterais pour l'argument de portabilité... j'ai vu juste?)
Exactement :-) Un peu par réflexe, je n'utilise que rarement instrrev pour éviter les problèmes VB5 vs VB6.
Alors, le bench: Sans surprise, le résultat est sans appel: l'utilisation de instrrev donne un gain d'un facteur 6, calcul effectué sur une série de 20 mesures de 1.000.000 d'appels.
Pour la petite histoire: j'ai instrumenté ce code pour voir ce que je pouvais encore améliorer au niveau perfs. En fait, ce qui consomme dans ce code, ce sont les lectures/écritures sur disque. On pourrait gagner en replaçant tous les print #g par une concaténation rapide dans un buffer, et faire une seule écriture à la fin de l'ensemble du buffer. De même, il serait de lire d'un bloc le fichier source ave get #f,,buffer , on regagnerait encore un peu :-)
PS: connais tu la méthode de concaténation rapide qui utilise un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport à une concaténation "naïve". Génial quand on fabrique de grandes chaines, typiquement génération de fichiers, etc...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de
news:ORfQBM2oGHA.2444@TK2MSFTNGP03.phx.gbl...
"jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:
44b0ef2e$0$32422$ba620e4c@news.skynet.be...
> Hello à tous,
>
> J'ai fait ce petit programme qui pourra vous être utile ou
> vous amuser. C'est la seconde version d'un programme qui
> permet de générer la version html d'un programme VB, en
> reprenant la coloration syntaxique, etc.
>
> Le programme génère tout seul tout seule toutes les pages
> html correspondant à toutes les forms, modules, etc.
>
> Une option très sympa et très utile: Le programme permet de
> générer automatiquement des hyperliens sur tous les appels
> de subs ou fonctions, permettant de naviguer aisément dans
> le code.
>
> Bref, tout est la:
> http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html
>
> Un petit exmemple de code généré:
> http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html
>
> Toute remarques bienvenues!
>
Hello,
Salut François,
Très sympa par rapport à la v1! Et très belle illustration de
l'implémentation et usage d'une hash table...
(pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6
;-) )
Merci du feedback :-) Tu as raison, j'avais enrichi mon kw.txt en
récupérant une liste sur le net, je n'ai pas fait attention :-)
Je vais mettre ça à jour!
Pour la hashTable, l'implémentation est okay, il me reste à en
faire une jolie classe...
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile,
la
chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench!
le
bench! le bench!)
Pour le bench, voir la fin du post :o)
(remarque, instrrev n'était pas présent dans VB5 donc la version
présente a
déjà l'avantage de la compatibilité et vu la manière dont le code est
écrit
j'opterais pour l'argument de portabilité... j'ai vu juste?)
Exactement :-) Un peu par réflexe, je n'utilise que rarement instrrev
pour éviter les problèmes VB5 vs VB6.
Alors, le bench: Sans surprise, le résultat est sans appel:
l'utilisation de instrrev donne un gain d'un facteur 6, calcul
effectué sur une série de 20 mesures de 1.000.000 d'appels.
Pour la petite histoire: j'ai instrumenté ce code pour voir ce
que je pouvais encore améliorer au niveau perfs. En fait, ce qui
consomme dans ce code, ce sont les lectures/écritures sur disque.
On pourrait gagner en replaçant tous les print #g par une
concaténation rapide dans un buffer, et faire une seule écriture
à la fin de l'ensemble du buffer.
De même, il serait de lire d'un bloc le fichier source ave
get #f,,buffer , on regagnerait encore un peu :-)
PS: connais tu la méthode de concaténation rapide qui utilise
un buffer préalloué et des écritures avec mid$(s,..) = " ... " ?
http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport
à une concaténation "naïve". Génial quand on fabrique de grandes
chaines, typiquement génération de fichiers, etc...
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Picalausa François" a écrit dans le message de news:
"jean-marc" a écrit dans le message de
news:
44b0ef2e$0$32422$ > Hello à tous, > > J'ai fait ce petit programme qui pourra vous être utile ou > vous amuser. C'est la seconde version d'un programme qui > permet de générer la version html d'un programme VB, en > reprenant la coloration syntaxique, etc. > > Le programme génère tout seul tout seule toutes les pages > html correspondant à toutes les forms, modules, etc. > > Une option très sympa et très utile: Le programme permet de > générer automatiquement des hyperliens sur tous les appels > de subs ou fonctions, permettant de naviguer aisément dans > le code. > > Bref, tout est la: > http://users.skynet.be/candide/jmn/vb/sources/syntaccol/colorvb.html > > Un petit exmemple de code généré: > http://users.skynet.be/candide/jmn/vb/sources/syntaccol/frmMain.html > > Toute remarques bienvenues! > Hello,
Salut François,
Très sympa par rapport à la v1! Et très belle illustration de l'implémentation et usage d'une hash table... (pssst... kw.txt contient les keywords.... pour VB.Net, pas pour VB6
;-) )
Merci du feedback :-) Tu as raison, j'avais enrichi mon kw.txt en récupérant une liste sur le net, je n'ai pas fait attention :-) Je vais mettre ça à jour!
Pour la hashTable, l'implémentation est okay, il me reste à en faire une jolie classe...
Sinon, je me demandais, pourquoi le choix de parcourir, dans getFile,
la
chaine "à la main" par rapport à l'utilisation de instrrev? (Le bench!
le
bench! le bench!)
Pour le bench, voir la fin du post :o)
(remarque, instrrev n'était pas présent dans VB5 donc la version
présente a
déjà l'avantage de la compatibilité et vu la manière dont le code est
écrit
j'opterais pour l'argument de portabilité... j'ai vu juste?)
Exactement :-) Un peu par réflexe, je n'utilise que rarement instrrev pour éviter les problèmes VB5 vs VB6.
Alors, le bench: Sans surprise, le résultat est sans appel: l'utilisation de instrrev donne un gain d'un facteur 6, calcul effectué sur une série de 20 mesures de 1.000.000 d'appels.
Pour la petite histoire: j'ai instrumenté ce code pour voir ce que je pouvais encore améliorer au niveau perfs. En fait, ce qui consomme dans ce code, ce sont les lectures/écritures sur disque. On pourrait gagner en replaçant tous les print #g par une concaténation rapide dans un buffer, et faire une seule écriture à la fin de l'ensemble du buffer. De même, il serait de lire d'un bloc le fichier source ave get #f,,buffer , on regagnerait encore un peu :-)
PS: connais tu la méthode de concaténation rapide qui utilise un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport à une concaténation "naïve". Génial quand on fabrique de grandes chaines, typiquement génération de fichiers, etc...
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Picalausa François
"jean-marc" a écrit dans le message de news: 44b11a7e$0$5535$
"Picalausa François" a écrit dans le message de news:
"jean-marc" a écrit dans le message de
news:
44b0ef2e$0$32422$
Hello,
Alors, le bench: Sans surprise, le résultat est sans appel: l'utilisation de instrrev donne un gain d'un facteur 6, calcul effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string utf-16, tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Pour la petite histoire: j'ai instrumenté ce code pour voir ce que je pouvais encore améliorer au niveau perfs. En fait, ce qui consomme dans ce code, ce sont les lectures/écritures sur disque. On pourrait gagner en replaçant tous les print #g par une concaténation rapide dans un buffer, et faire une seule écriture à la fin de l'ensemble du buffer. De même, il serait plus rapide de lire d'un bloc le fichier source
> avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la différence! Pour les 100Mo, on pourrait même utiliser du filemapping ;-)
PS: connais tu la méthode de concaténation rapide qui utilise un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport à une concaténation "naïve". Génial quand on fabrique de grandes chaines, typiquement génération de fichiers, etc...
Tout à fait! Le même type de solution s'applique d'ailleurs au même problème qu'est l'ajout de nombreux éléments un par un à un tableau (à coup de redim)...
-- Picalausa François
"jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de news:
44b11a7e$0$5535$ba620e4c@news.skynet.be...
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de
news:ORfQBM2oGHA.2444@TK2MSFTNGP03.phx.gbl...
"jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:
44b0ef2e$0$32422$ba620e4c@news.skynet.be...
Hello,
Alors, le bench: Sans surprise, le résultat est sans appel:
l'utilisation de instrrev donne un gain d'un facteur 6, calcul
effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string utf-16,
tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Pour la petite histoire: j'ai instrumenté ce code pour voir ce
que je pouvais encore améliorer au niveau perfs. En fait, ce qui
consomme dans ce code, ce sont les lectures/écritures sur disque.
On pourrait gagner en replaçant tous les print #g par une
concaténation rapide dans un buffer, et faire une seule écriture
à la fin de l'ensemble du buffer.
De même, il serait plus rapide de lire d'un bloc le fichier source
> avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la
différence! Pour les 100Mo, on pourrait même utiliser du filemapping ;-)
PS: connais tu la méthode de concaténation rapide qui utilise
un buffer préalloué et des écritures avec mid$(s,..) = " ... " ?
http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport
à une concaténation "naïve". Génial quand on fabrique de grandes
chaines, typiquement génération de fichiers, etc...
Tout à fait!
Le même type de solution s'applique d'ailleurs au même problème qu'est
l'ajout de nombreux éléments un par un à un tableau (à coup de redim)...
"jean-marc" a écrit dans le message de news: 44b11a7e$0$5535$
"Picalausa François" a écrit dans le message de news:
"jean-marc" a écrit dans le message de
news:
44b0ef2e$0$32422$
Hello,
Alors, le bench: Sans surprise, le résultat est sans appel: l'utilisation de instrrev donne un gain d'un facteur 6, calcul effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string utf-16, tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Pour la petite histoire: j'ai instrumenté ce code pour voir ce que je pouvais encore améliorer au niveau perfs. En fait, ce qui consomme dans ce code, ce sont les lectures/écritures sur disque. On pourrait gagner en replaçant tous les print #g par une concaténation rapide dans un buffer, et faire une seule écriture à la fin de l'ensemble du buffer. De même, il serait plus rapide de lire d'un bloc le fichier source
> avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la différence! Pour les 100Mo, on pourrait même utiliser du filemapping ;-)
PS: connais tu la méthode de concaténation rapide qui utilise un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? http://users.skynet.be/candide/jmn/vb/Concat.html
Cette méthode est impressionnate: gain d'un facteur 100 par rapport à une concaténation "naïve". Génial quand on fabrique de grandes chaines, typiquement génération de fichiers, etc...
Tout à fait! Le même type de solution s'applique d'ailleurs au même problème qu'est l'ajout de nombreux éléments un par un à un tableau (à coup de redim)...
-- Picalausa François
jean-marc
"Picalausa François" a écrit dans le message de news:uC$
"jean-marc" a écrit dans le message de
news:
44b11a7e$0$5535$ > "Picalausa François" a écrit dans le message
de
> news: >> "jean-marc" a écrit dans le message
de
> news: >> 44b0ef2e$0$32422$ Hello,
>Alors, le bench: Sans surprise, le résultat est sans appel: >l'utilisation de instrrev donne un gain d'un facteur 6, calcul >effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string
utf-16,
tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Jouons aux "7 familles Geek": Dans la famille "OverOverOverkill", je demande le père!
> Pour la petite histoire: j'ai instrumenté ce code pour voir ce > que je pouvais encore améliorer au niveau perfs. En fait, ce qui > consomme dans ce code, ce sont les lectures/écritures sur disque. > On pourrait gagner en replaçant tous les print #g par une > concaténation rapide dans un buffer, et faire une seule écriture > à la fin de l'ensemble du buffer. > De même, il serait plus rapide de lire d'un bloc le fichier source > avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la différence! Pour les 100Mo, on pourrait même utiliser du filemapping
;-)
héhéhé :o)
> PS: connais tu la méthode de concaténation rapide qui utilise > un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? > http://users.skynet.be/candide/jmn/vb/Concat.html > > Cette méthode est impressionnate: gain d'un facteur 100 par rapport > à une concaténation "naïve". Génial quand on fabrique de grandes > chaines, typiquement génération de fichiers, etc...
Tout à fait! Le même type de solution s'applique d'ailleurs au même problème qu'est l'ajout de nombreux éléments un par un à un tableau (à coup de
redim)...
Oui, c'est clair! L'expérience montre qu'il vaut dans tous les cas prévoir grand dès le départ, et ne pas hésitez à préallouer, compte tenu du coût prohibitif des allocations/désallocations dynamiques.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Picalausa François" <fpicalausa@chez.com> a écrit dans le message de
news:uC$3qO3oGHA.4192@TK2MSFTNGP03.phx.gbl...
"jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:
44b11a7e$0$5535$ba620e4c@news.skynet.be...
> "Picalausa François" <fpicalausa@chez.com> a écrit dans le message
de
> news:ORfQBM2oGHA.2444@TK2MSFTNGP03.phx.gbl...
>> "jean-marc" <NOSPAM_jean_marc_n2@yahoo.fr> a écrit dans le message
>Alors, le bench: Sans surprise, le résultat est sans appel:
>l'utilisation de instrrev donne un gain d'un facteur 6, calcul
>effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string
utf-16,
tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Jouons aux "7 familles Geek":
Dans la famille "OverOverOverkill", je demande le père!
> Pour la petite histoire: j'ai instrumenté ce code pour voir ce
> que je pouvais encore améliorer au niveau perfs. En fait, ce qui
> consomme dans ce code, ce sont les lectures/écritures sur disque.
> On pourrait gagner en replaçant tous les print #g par une
> concaténation rapide dans un buffer, et faire une seule écriture
> à la fin de l'ensemble du buffer.
> De même, il serait plus rapide de lire d'un bloc le fichier source
> avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la
différence! Pour les 100Mo, on pourrait même utiliser du filemapping
;-)
héhéhé :o)
> PS: connais tu la méthode de concaténation rapide qui utilise
> un buffer préalloué et des écritures avec mid$(s,..) = " ... " ?
> http://users.skynet.be/candide/jmn/vb/Concat.html
>
> Cette méthode est impressionnate: gain d'un facteur 100 par rapport
> à une concaténation "naïve". Génial quand on fabrique de grandes
> chaines, typiquement génération de fichiers, etc...
Tout à fait!
Le même type de solution s'applique d'ailleurs au même problème qu'est
l'ajout de nombreux éléments un par un à un tableau (à coup de
redim)...
Oui, c'est clair! L'expérience montre qu'il vaut dans tous les cas
prévoir grand dès le départ, et ne pas hésitez à préallouer,
compte tenu du coût prohibitif des allocations/désallocations
dynamiques.
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
"Picalausa François" a écrit dans le message de news:uC$
"jean-marc" a écrit dans le message de
news:
44b11a7e$0$5535$ > "Picalausa François" a écrit dans le message
de
> news: >> "jean-marc" a écrit dans le message
de
> news: >> 44b0ef2e$0$32422$ Hello,
>Alors, le bench: Sans surprise, le résultat est sans appel: >l'utilisation de instrrev donne un gain d'un facteur 6, calcul >effectué sur une série de 20 mesures de 1.000.000 d'appels.
Reste à essayer avec un SAFEARRAY d'integers mappé sur la string
utf-16,
tout en passant les espaces au vol plutôt que trim... OK, je sors ;-)
Jouons aux "7 familles Geek": Dans la famille "OverOverOverkill", je demande le père!
> Pour la petite histoire: j'ai instrumenté ce code pour voir ce > que je pouvais encore améliorer au niveau perfs. En fait, ce qui > consomme dans ce code, ce sont les lectures/écritures sur disque. > On pourrait gagner en replaçant tous les print #g par une > concaténation rapide dans un buffer, et faire une seule écriture > à la fin de l'ensemble du buffer. > De même, il serait plus rapide de lire d'un bloc le fichier source > avec get #f,,buffer , on regagnerait encore un peu :-)
Je sens qu'il va falloir 10Mo de code bien monolithique pour voir la différence! Pour les 100Mo, on pourrait même utiliser du filemapping
;-)
héhéhé :o)
> PS: connais tu la méthode de concaténation rapide qui utilise > un buffer préalloué et des écritures avec mid$(s,..) = " ... " ? > http://users.skynet.be/candide/jmn/vb/Concat.html > > Cette méthode est impressionnate: gain d'un facteur 100 par rapport > à une concaténation "naïve". Génial quand on fabrique de grandes > chaines, typiquement génération de fichiers, etc...
Tout à fait! Le même type de solution s'applique d'ailleurs au même problème qu'est l'ajout de nombreux éléments un par un à un tableau (à coup de
redim)...
Oui, c'est clair! L'expérience montre qu'il vaut dans tous les cas prévoir grand dès le départ, et ne pas hésitez à préallouer, compte tenu du coût prohibitif des allocations/désallocations dynamiques.
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;