Speeding up TCP

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

On Mar 21, 2010, at 1:19 PM, Sean W. wrote:

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

Show us your code. It’s impossible to say that the performance issue is
with network and not with other processing you are performing on the
data from what little you’ve said.

Barring that, take a look at the Eventmachine library (available as a
gem). It allows you to build clients and servers using non-blocking I/O.

cr

On Sun, Mar 21, 2010 at 2:43 PM, Chuck R. [email protected]
wrote:

On Mar 21, 2010, at 1:19 PM, Sean W. wrote:

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

130ms from the same client to the same server over the same network?

Show us your code. It’s impossible to say that the performance issue is with network and not with other processing you are performing on the data from what little you’ve said.

+1 :slight_smile:

Sean W. wrote:

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

using eventmachine might help.
-rp

Sean W. wrote:

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

Show your code as others have said. Using tcpdump or wireshark, measure
exactly how much of this delay is for the far-end server processing and
responding.

If the far-end server is taking less than 100ms to respond, you could
try the TCP_NODELAY or TCP_CORK socket options on the ruby client side.

Try disabling naggle algorithm.

On Wed, Mar 24, 2010 at 9:52 PM, Roger P. [email protected]
wrote:

Sean W. wrote:

I have a script that opens a TCP socket and then sends an XML request
using SSL over the socket, it then receives an answer back from the
server. The whole send and receive is taking between 160 and 175
milliseconds total (not including opening the socket) but I know others
using PHP and Perl have this down to around 130 milliseconds and I
wonder if Ruby has any tricks up its sleeve that would speed thing up a
little.

using eventmachine might help.

-rp

Posted via http://www.ruby-forum.com/.


Let them talk of their oriental summer climes of everlasting
conservatories; give me the privilege of making my own summer with my
own coals.

http://gnufied.org

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs