Avatar billede bojohansen Nybegynder
22. marts 2009 - 20:59 Der er 4 kommentarer og
1 løsning

Kan jeg gøre denne kode hurtigere?

Hej.

Har ikke skrevet nogen form for kode i et par år nu, men har da skrevet denne :

http://pastebin.ca/1368324

jeg importere fra en txt fil som ser sådant ud :

http://pastebin.ca/1368329

txt filen er på nogen hundrede tusen linjer, men jeg syntes det går forbannede langsomt.
Har måtte installere IIS på egen maskine for at køre det lokalt i håp om at det skulle gå lidt hurtigere.....

Er der en med erfaring som gidder at skumme igennem koden for at se efter åbenlyse tunge ting?
Avatar billede softspot Forsker
23. marts 2009 - 08:42 #1
Læs det hele ind i hukommelsen med

textfile.ReadAll()

og arbejd med data der - det burde speede processen op.

Alternativt læs en blok af data med

textfile.Read(antalKarakterer)

og arbejd med den indtil du har bearbejdet så meget data du kan i den løste blok og så læs mere data (hvis der er mere).

Det er med stor sandsynlighed hurtigere end at læse en enkelt linie ad gangen (det er filadgangen der er langsom).
Avatar billede softspot Forsker
23. marts 2009 - 08:42 #2
Tag evt. et kig i referencemanualen fra MS: http://msdn.microsoft.com/en-us/library/dhyx75w2(VS.85).aspx
Avatar billede bojohansen Nybegynder
24. marts 2009 - 23:09 #3
Hej.

Det var et godt tips.
Har testet lidt med ReadAll
Kastet det i en Streng, delt den i array på VbCrLf og skrevet ud array'et
Napper 230tusen linjer på 1:50 min.
Det absolut ikke værst :-)

Læg et Svar SoftSpot
Avatar billede softspot Forsker
24. marts 2009 - 23:20 #4
Velbekomme :)
Avatar billede softspot Forsker
25. marts 2009 - 00:07 #5
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester