RE: How expensive are MVars ?

On 13 January 2005 23:36, Nick Main wrote:
I'm planning to implement a small OO language on top of GHC (think JavaScript) and need to decide on how to implement the mutable object graph that is required.
The two approaches I'm considering are: - something on top of Data.Graph - using MVars as the object references.
The MVar approach is the most appealing, since it would also allow the OO language to contain threads. How expensive is an MVar access (in GHC), compared to the graph navigation that would be required to resolve a reference using Data.Graph ?
I know this is a fairly nebulous question, but any comments or suggestions are appreciated.
So here's a nebulous answer: I don't know, measure it :-) Each MVar operation involves a function call right now, so you might class it as "expensive". Personally for your application, I think I'd use a mutable array to represent the heap. That amounts to almost the same as using Data.Graph, but I imagine you'll need the mutability for speed. Perhaps providing a mutable Graph data structure implemented using an array would be a nice abstraction. Cheers, Simon
participants (1)
-
Simon Marlow