Re: IOCP buffers and page locks
- From: "Sam Hobbs" <samuel@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Thu, 22 Nov 2007 00:56:31 -0800
Attempts to do better what Windows does internally can easily backfire in
the sense that attempts to improve performance could degrade performance.
<eselk@xxxxxxxxxxxx> wrote in message
news:1814a834-df83-433b-84ba-88647fa777e8@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
If I have one buffer, lets say it is 12k and is aligned on 4k pages so
it takes up 3 full pages. If I break that buffer in to smaller
chunks, lets say 1k each, and I make 12 calls to WSARecv (or WSASend
or AcceptEx). That is still only 3 page locks, right? So that should
use less resources than calling WSARecv 12 times with seperate buffers
that may each be on a seperate page, correct?
Or does each call to WSARecv use up another page lock, even though the
page that the buffer is on is already locked? Seems impossible, if
page locks are anything like I would expect. I know each call to
WSARecv uses a tiny bit of non-paged memory, for some pointers and
stuff.
When people are talking about IOCP and say to keep the number of "page
locks" to a minimum, do they really mean the number of "locked
pages"? If page locking works the way I would imagine, each lock just
incriments a counter and doesn't use any additional resources, so
locking the same page 100 times shouldn't matter --- but locking 100
pages once, would.
.
- References:
- IOCP buffers and page locks
- From: eselk
- IOCP buffers and page locks
- Prev by Date: Re: C# UDP MultiCast Listener
- Next by Date: How to get CORRECT source IP address in TDI filter driver?
- Previous by thread: Re: IOCP buffers and page locks
- Next by thread: How do I add WPA key through NDISPROT
- Index(es):
Relevant Pages
|
|