[Haskell-cafe] ansi2html - one program, several issues

Bulat Ziganshin bulat.ziganshin at gmail.com
Sat Jul 19 17:02:36 EDT 2008


Hello Krzysztof,

Sunday, July 20, 2008, 12:49:54 AM, you wrote:

on the 32-bit computers 36x memreqs for storing large strings in
memory is a rule, on 64-bit ones - 72x


> I forgot to mention that the memory consumption is several times
> higher than file size. On 8,3 Mb file:
>> 532 MB total memory in use (4 MB lost due to fragmentation).

> Having that 8 Mb in memory is not the problem. 532 Mb is another
> story. In general, the program consumes roughly 64 times more memory
> than file size and it scales linearly.
>  

> Best regards
> Christopher Skrzetnicki

> On Sat, Jul 19, 2008 at 9:52 PM, Chaddai Fouche <chaddai.fouche at gmail.com> wrote:
> 2008/7/19 Krzysztof Skrzetnicki < gtener at gmail.com>:
>> Hi all 
>  
>>
>> 1) Profiling shows that very simple functions are source of great memory and 
>> time consumption. However, if I turn them off and simply print their input 
>> arguments instead, the overall time and memory consumption doesn't change. 
>> But now another function is acting badly. My guess: somehow the cost of 
>> Parsec code is shifted into whatever function is using it's output. Let's 
>> see: 
>  
>  
> Are you using Parsec to parse the whole file ? Then your problem is
> there : Parsec needs to read and process the whole file before it can 
> give us any output since it thinks it could have to give us an error 
> instead and it can't be sure of that before he has read the whole 
> thing... 
> In your case, your problem is such that you would prefer to treat the 
> file as a stream, isn't it ? 
> There are some parser library that can give output lazily (look at 
> polyparse flavour), another option would be to only use Parsec where 
> you need it and just read and print the ordinary text for example. 
>  



-- 
Best regards,
 Bulat                            mailto:Bulat.Ziganshin at gmail.com



More information about the Haskell-Cafe mailing list