haskell-works / hw-json

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use efficient representation for balancedparens

gbaz opened this issue · comments

commented

Using poppy for the parens part of the cursor led to a many-fold performance speedup in our use case (maybe 50-100x?).

getCurs bs = do
  let cursor1@(JsonCursor t i b r) = FAST.makeCursor bs
  let cursor = JsonCursor t i (fmap makePoppy512 b) r
  return cursor

I.e. in the above, using cursor as opposed to cursor1 is ridiculously faster -- moving us from unusable to nicely usable. I think this should just be baked into the fast cursor.

commented

resolved by #135