🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #205

Re: Een grote tekstfile weergeven.

#205
From: moi
Date: Fri, 28 Jan 2005 18:41
69 lines
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-mail
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>

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