diff options
author | Sam T <pxqr.sta@gmail.com> | 2013-07-03 00:17:16 +0400 |
---|---|---|
committer | Sam T <pxqr.sta@gmail.com> | 2013-07-03 00:17:16 +0400 |
commit | 07a6123d56df03e5d7c40384c87f6c40ae2b5131 (patch) | |
tree | daa508aaccfc5086dbef89bca5ac4a0bb9408ed8 /tests | |
parent | 044672da343dd3139be0c8f95f1fbd45b7546d9c (diff) |
~ Use lazy bytestring
This lead to the following consequences:
* we could efficiently read from storage - if block intersects files
boundaries then we will "view" the block in the two different
bytestrings. To avoid concat we now return lazy bytestring;
* we could read block from socket without "concat" - again, for the
same reason.
The pitfail is that now we have a bit more heap object, but blocks
lifetime is very short and this shouldnt play the big difference. The
lifetime is either (socket -> storage -> unreachable) or (storage ->
socket -> unreachable) unless a lib user keep block for their own
purposes.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Main.hs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tests/Main.hs b/tests/Main.hs index b99f2469..45f92813 100644 --- a/tests/Main.hs +++ b/tests/Main.hs | |||
@@ -161,6 +161,9 @@ positive = fromIntegral <$> (arbitrary :: Gen Word32) | |||
161 | instance Arbitrary ByteString where | 161 | instance Arbitrary ByteString where |
162 | arbitrary = B.pack <$> arbitrary | 162 | arbitrary = B.pack <$> arbitrary |
163 | 163 | ||
164 | instance Arbitrary Lazy.ByteString where | ||
165 | arbitrary = Lazy.pack <$> arbitrary | ||
166 | |||
164 | instance Arbitrary BlockIx where | 167 | instance Arbitrary BlockIx where |
165 | arbitrary = BlockIx <$> positive <*> positive <*> positive | 168 | arbitrary = BlockIx <$> positive <*> positive <*> positive |
166 | 169 | ||