[Haskell-cafe] Need some advice around lazy IO

C K Kashyap ckkashyap at gmail.com
Sun Mar 24 18:31:46 CET 2013


Thanks for the pointer Mukesh .... I'll go over the blog.

Changing the xml parser to another one from hackage - xml - helped but not
fully. I think I would need to change to bytestring. But for now, I split
the program into smaller programs and it seems to work.

Regards,
Kashyap


On Sat, Mar 23, 2013 at 11:55 AM, mukesh tiwari <
mukeshtiwari.iiitm at gmail.com> wrote:

> Hi Kashyap
> I am not sure if this solution to your problem but try using Bytestring
> rather than String in
>
> parseXML' :: String -> XMLAST
> parseXML' str =
>   f ast where
>       ast = parse (spaces >> xmlParser) "" str
>       f (Right x) = x
>
>       f (Left x) = CouldNotParse
>
>
> Also see this post[1] My Space is Leaking..
>
> Regards,
> Mukesh Tiwari
>
> [1] http://www.mega-nerd.com/erikd/Blog/
>
>
> On Sat, Mar 23, 2013 at 11:11 AM, C K Kashyap <ckkashyap at gmail.com> wrote:
>
>> Oops...I sent out the earlier message accidentally.
>>
>> I got some profiling done and got this pdf generated. I see unhealthy
>> growths in my XML parser.
>> https://github.com/ckkashyap/haskell-perf-repro/blob/master/RSXP.hs
>> I must be not using parsec efficiently.
>>
>> Regards,
>> Kashyap
>>
>>
>>
>>
>> On Sat, Mar 23, 2013 at 11:07 AM, C K Kashyap <ckkashyap at gmail.com>wrote:
>>
>>> I got some profiling done and got this pdf generated. I see unhealthy
>>> growths in my XML parser.
>>>
>>>
>>>
>>> On Fri, Mar 22, 2013 at 8:12 PM, C K Kashyap <ckkashyap at gmail.com>wrote:
>>>
>>>> Hi folks,
>>>>
>>>> I've run into more issues with my report generation tool .... I'd
>>>> really appreciate some help.
>>>>
>>>> I've created a repro project on github to demonstrate the problem.
>>>> git://github.com/ckkashyap/haskell-perf-repro.git
>>>>
>>>> There is a template xml file that needs to be replicated several times
>>>> (3000 or so) under the data directory and then "driver" needs to be run.
>>>> The memory used by driver keeps growing until it runs out of memory.
>>>>
>>>> Also, I'd appreciate some tips on how to go about debugging this
>>>> situation. I am on the windows platform.
>>>>
>>>>
>>>> Regards,
>>>> Kashyap
>>>>
>>>>
>>>> On Tue, Mar 19, 2013 at 1:11 PM, Kim-Ee Yeoh <ky3 at atamo.com> wrote:
>>>>
>>>>> On Tue, Mar 19, 2013 at 2:01 PM, Konstantin Litvinenko
>>>>> <to.darkangel at gmail.com> wrote:
>>>>> > Yes. You (and Dan) are totally right. 'Let' just bind expression, not
>>>>> > evaluating it. Dan's evaluate trick force rnf to run before hClose.
>>>>> As I
>>>>> > said - it's tricky part especially for newbie like me :)
>>>>>
>>>>> To place this in perspective, one only needs to descend one or two
>>>>> more layers before the semantics starts confusing even experts.
>>>>>
>>>>> Whereas the difference between seq and evaluate shouldn't be too hard
>>>>> to grasp, that between evaluate and (return $!) is considerably more
>>>>> subtle, as Edward Yang notified us 10 days ago. See the thread titled
>>>>> To seq or not to seq.
>>>>>
>>>>> -- Kim-Ee
>>>>>
>>>>> _______________________________________________
>>>>> Haskell-Cafe mailing list
>>>>> Haskell-Cafe at haskell.org
>>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>>
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130324/93133128/attachment.htm>


More information about the Haskell-Cafe mailing list