Article View: nl.comp.programmeren
Article #205Re: Een grote tekstfile weergeven.
From: moi
Date: Fri, 28 Jan 2005 18:41
Date: Fri, 28 Jan 2005 18:41
69 lines
4439 bytes
4439 bytes
Bastiaan wrote: > > Nu ik toch weer aan 't schrijven ben, nog maar eens het voorbeeld. > Je hebt een file met louter ASCII tekens boven de 31, van 16.000.010 Nou, bastiaan, ik heb het even geprobeerd (het is toch weekeind) En mn schatting was veel te voorzichtig. 16 MB scannen in 1sec kan *zat*! (als je niet te veel doet) Ik wist niet eens dat die HD I/O van mij meer dan 10 MB/sec aankon. kennelijk wel dus. Ik had wat moeite om een geschikte file van geschikte grootte te vinden, en uiteindelijk is het een fontfile geworden. Het is onwaarschijnlijk dat de file in memory gebufferd zat. Hij is 14M groot, dus gooi er nog 15% bovenop) er zitten ca 250K regels in / 14 M, dat is dus ca 55 tekens/regel. Ik weet niet hoeveel tabs er in die niet-text file van jou zitten. Ik was te lui om tabs te tellen, dus ik heb alleen LF geteld, en offsets in een array bewaard. Kwa komplexiteit maakt dat niet uit. (gooi er een factor 2 tegenaan, dan zit ik nog onder de seconde) Ik heb hem twee keer gedaan; je kan zien dat ie de tweede keer voordeel heeft van disk-buffering, en dat de rest vd tijden nauwelijks verschillen. Methode is mmap() + met for-loopje door char[] array fietsen. Dat kan uiteraard alleen op unix, maar het geeft wel aan wat haalbaar is. Je zult met VB waarschijnlijk wel onder de 3 sec kunnen komen. Komtie: [lutser@klutser dirretje]$ ls -l /usr/share/fonts/ko/TrueType/batang.ttf -rw-r--r-- 1 root root 13939436 Feb 15 2004 /usr/share/fonts/ko/TrueType/batang.ttf [lutser@klutser dirretje]$ time ./a.out /usr/share/fonts/ko/TrueType/batang.ttf Ptr = 0xf0593000, Sz = 13939436 Lines = 237160 / 262144 real 0m0.533s user 0m0.209s sys 0m0.023s [lutser@klutser dirretje]$ ls -l /usr/share/fonts/ko/TrueType/batang.ttf -rw-r--r-- 1 root root 13939436 Feb 15 2004 /usr/share/fonts/ko/TrueType/batang.ttf [lutser@klutser dirretje]$ time ./a.out /usr/share/fonts/ko/TrueType/batang.ttf Ptr = 0xf061f000, Sz = 13939436 Lines = 237160 / 262144 real 0m0.217s user 0m0.205s sys 0m0.012s Nou jongen, laat je dus niet ontmoedigen. Doe je best, het kan! nou jij! Succes, AvK
Technical Details
Message-ID:
<eqadnVqdj4H9GmfcRVnyug@casema.nl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!newsprint.newsread.com!66.133.170.4.MISMATCH!news-feed01.roc.ny.frontiernet.net!nntp.frontiernet.net!nntp.giganews.com.MISMATCH!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mailReferences:
<41e7d020$0$4377$58c7af7e@news.kabelfoon.nl> <GnZFd.31178$I24.2672738@phobos.telenet-ops.be> <41f50ed3$0$281$4d4ebb8e@news.nl.uu.net> <10va6t6ejodst63@corp.supernews.com> <ct3j0f.1d0.1@news.isolution.nl> <10valcrcncfhm8a@corp.supernews.com> <41f57c8b$0$14124$4d4ebb8e@news.nl.uu.net> <ct53al.1b8.1@news.isolution.nl> <41f68928$0$14113$4d4ebb8e@news.nl.uu.net> <10vd3kfqrk9jv43@corp.supernews.com> <41f6a14a$0$283$4d4ebb8e@news.nl.uu.net> <ct6tmg.4k.1@news.isolution.nl> <41f7d857$0$274$4d4ebb8e@news.nl.uu.net> <ct8ugk.4n8.1@news.isolution.nl> <41f93415$0$14124$4d4ebb8e@news.nl.uu.net> <ctbitc.4kg.1@news.isolution.nl> <41f968a7$0$282$4d4ebb8e@news.nl.uu.net> <ctddbt.4p0.1@news.isolution.nl> <41fa4955$0$14124$4d4ebb8e@news.nl.uu.net>Show Full Headers
Complete Article Headers
X-Google-Thread: 107324,cc6ea8d92fe92f6d X-Google-Thread: fcea4,cc6ea8d92fe92f6d X-Google-Attributes: gid107324,gidfcea4,public X-Google-Language: DUTCH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!newsprint.newsread.com!66.133.170.4.MISMATCH!news-feed01.roc.ny.frontiernet.net!nntp.frontiernet.net!nntp.giganews.com.MISMATCH!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.casema.nl!news.casema.nl.POSTED!not-for-mail NNTP-Posting-Date: Fri, 28 Jan 2005 12:41:36 -0600 Date: Fri, 28 Jan 2005 19:41:36 +0100 From: moi <avk@localhost> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040510 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: nl.comp.programmeren,be.comp.programming Subject: Re: Een grote tekstfile weergeven. References: <41e7d020$0$4377$58c7af7e@news.kabelfoon.nl> <GnZFd.31178$I24.2672738@phobos.telenet-ops.be> <41f50ed3$0$281$4d4ebb8e@news.nl.uu.net> <10va6t6ejodst63@corp.supernews.com> <ct3j0f.1d0.1@news.isolution.nl> <10valcrcncfhm8a@corp.supernews.com> <41f57c8b$0$14124$4d4ebb8e@news.nl.uu.net> <ct53al.1b8.1@news.isolution.nl> <41f68928$0$14113$4d4ebb8e@news.nl.uu.net> <10vd3kfqrk9jv43@corp.supernews.com> <41f6a14a$0$283$4d4ebb8e@news.nl.uu.net> <ct6tmg.4k.1@news.isolution.nl> <41f7d857$0$274$4d4ebb8e@news.nl.uu.net> <ct8ugk.4n8.1@news.isolution.nl> <41f93415$0$14124$4d4ebb8e@news.nl.uu.net> <ctbitc.4kg.1@news.isolution.nl> <41f968a7$0$282$4d4ebb8e@news.nl.uu.net> <ctddbt.4p0.1@news.isolution.nl> <41fa4955$0$14124$4d4ebb8e@news.nl.uu.net> In-Reply-To: <41fa4955$0$14124$4d4ebb8e@news.nl.uu.net> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <eqadnVqdj4H9GmfcRVnyug@casema.nl> Lines: 69 NNTP-Posting-Host: 83.83.6.100 X-Trace: sv3-24PFjL/baBQuInr45GP53eDFiA1hbRG4Lnvyi14w0AmE1VAwG9jlr45K4BHndTLbVS3dR2s65SG0oLn!vyhCVcfNoL/pwCy9PVBg8ORL0xhcAvvEVBsqfbj1uzYFtqSM/ojNctpG4OZbMhHi/Mc= X-Complaints-To: abuse@casema.nl X-DMCA-Complaints-To: abuse@casema.nl X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.22