Changes between Initial Version and Version 1 of Ticket #8732


Ignore:
Timestamp:
Feb 4, 2014 5:42:35 AM (6 years ago)
Author:
tibbe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #8732 – Description

    initial v1  
    1 The lock allocate() takes when allocating big objects hurts scalability of I/O bound application. Network.Socket.ByteString.recv is typically called with a buffer size of 4096, which causes a ByteString of that size to be allocate. The size of this ByteString causes it to be allocated from the big object space, which causes contention of the global lock that guards that space.
     1The lock `allocate` takes when allocating big objects hurts scalability of I/O bound application. `Network.Socket.ByteString.recv` is typically called with a buffer size of 4096, which causes a `ByteString` of that size to be allocated. The size of this `ByteString` causes it to be allocated from the big object space, which causes contention of the global lock that guards that space.
    22
    33See http://www.yesodweb.com/blog/2014/02/new-warp for a real world example.