IMHO you mix abstract "buffering" and double buffering in real life.
Buffering is needed, no question. But when you write

   var s = renderTemplate(...)

then `s` is buffer for your output data. And Nagle will not improve things. 
It will add just useless secondary buffer.

Can anyone explain, when Nagle will be really useful? Or where is a mistake 
in my example.

пятница, 19 октября 2012 г., 11:14:22 UTC+4 пользователь greelgorke написал:
>
> nagle is a tradeoff. Nagle tries to increase bandwidth usage and increases 
> latency for this. thats the desired behavior for the most www use cases 
> without realtime requirements (realtime as it meaned, not the 
> server-push-communication). opposite to it realtime apps like games are 
> more latency dependent their users have usualy enough bandwidth, so nagel 
> is contra-productive here.
>
> And Nagle behaviour is what most developers are expecting for web apps. 
> I'd prefer not to turn it off by default. if you know you don't use it in 
> your app, just set it off, it is not that hard.
>
> greez   
>
> Am Freitag, 19. Oktober 2012 07:08:36 UTC+2 schrieb Vitaly Puzrin:
>>
>> Simon, that's default function param, not default buffering state.
>>
>> "By default TCP connections use the Nagle algorithm, they buffer data 
>> before sending it off." - from the link above.
>>
>> пятница, 19 октября 2012 г., 9:00:22 UTC+4 пользователь Simon написал:
>>>
>>> It looks like noDelay is true by default, which means buffering is off.
>>>
>>> On Thursday, October 18, 2012 8:44:32 PM UTC+7, Vitaly Puzrin wrote:
>>>>
>>>> http://nodejs.org/api/net.html#net_socket_setnodelay_nodelay
>>>>
>>>> Can anyone explain use case, when default buffering is really useful? 
>>>> IMHO, it just make to place additional code every time, to disable it:
>>>>
>>>> 1. If one send data with single block (render template, and return all 
>>>> page), then Nagle will not help, and will cause double buffering.
>>>> 2. If one send data as stream, there are 2 subcases:
>>>>    - small messaging - delay must be disabled to deliver each message 
>>>> ASAP
>>>>    - big files via pipes - they already have internal buffers (and it's 
>>>> more effective to increase file buffers)
>>>>
>>>> I don't pretend on 100% coverage. That's just the most used cases, 
>>>> IMHO. So, looks like it's better to disable Naggle by default
>>>> Any ideas?
>>>>
>>>> Vitaly
>>>>
>>>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to