[PATCH 1/3] socket: evaluate buffer size in recv / recvfrom
Alexander Turenko
alexander.turenko at tarantool.org
Mon Aug 27 12:26:57 MSK 2018
On Mon, Aug 27, 2018 at 12:20:59PM +0300, Vladimir Davydov wrote:
> On Mon, Aug 27, 2018 at 03:08:49AM +0300, Alexander Turenko wrote:
> > On Fri, Aug 24, 2018 at 06:25:42PM +0300, Vladimir Davydov wrote:
> > > On Fri, Aug 24, 2018 at 05:47:37AM +0300, Alexander Turenko wrote:
> > > > diff --git a/src/lua/socket.lua b/src/lua/socket.lua
> > > > index 06306eae2..946e11e9e 100644
> > > > --- a/src/lua/socket.lua
> > > > +++ b/src/lua/socket.lua
> > > > @@ -770,6 +770,41 @@ local function socket_send(self, octets, flags)
> > > > return tonumber(res)
> > > > end
> > > >
> > > > +local function socket_is_udp(self)
> > > > + local fd = check_socket(self)
> > > > + if self.itype == nil then
> > > > + self.itype = self:getsockopt('SOL_SOCKET', 'SO_TYPE')
> > >
> > > I think you could instead set itype in socket constructor.
> > >
> >
> > That will increase memory consumption in case when it is not needed to
> > know itype: say, for sending sockets (I should add comment about this,
> > of course). However I think it is worth to cache it when revc / recvfrom
> > is used intensively to avoid extra syscall.
> >
> > Do you think we can ignore extra memory comsumption in this case?
>
> How much of memory overhead is it going to be? Several bytes per socket?
> IMHO we can ignore it.
8 bytes (numbers in lua are doubles). Ok, I'll proceed.
WBR, Alexander Turenko.
More information about the Tarantool-patches
mailing list