Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ICS or Indy?

1 view
Skip to first unread message

DarkSSJ

unread,
Oct 12, 2002, 6:05:45 PM10/12/02
to
I know that this is an old question but I haven't seen what I'm looking for.
My question is very simple: which is the faster?
Thanks for help.


Charles Stack

unread,
Oct 12, 2002, 7:06:15 PM10/12/02
to
I am assuming you are trying to stay with a freeware solution, so I won't
digress as to recommending a commercial product.

To my knowledge, true benchmarks have not yet been done (or acknowledged...
I'm organizing such an activity...now that my internet feed is back up).

Is it speed or ease of development that is your greater concern?

What kind of application are you writing? Web/mail client or your own
custom protocol?

There's a distinct difference in how you write applications when using
blocking or non-blocking sockets. The trend right now is to go with
blocking sockets due to the simpler design approach (especially
multi-threaded apps). However, if you are writing mail clients or a web
client, then you might be able to just use one of the components provided by
the respective library.

Both libraries, ICS and INDY have the supporters and detractors. For client
development perspective I use INDY. But, that's a personal choice and I'm
happy with it's performance in this area. For server development, I use
another (commercial) product simply because of raw performance issues.

Charles


"DarkSSJ" <dar...@email.it> wrote in message
news:3da89cbf$1...@newsgroups.borland.com...

DarkSSJ

unread,
Oct 12, 2002, 7:42:17 PM10/12/02
to
I'm going to write a file sharing application with my own protocol. I think
I will need speed, speed and speed because of server will has to move a lot
of data.
Because of non-blocking (ICS) is faster and blocking (Indy) is easyer I
suppose that I should choose non-blocking right?

(Sorry for my bad english :-p )


Charles Stack

unread,
Oct 12, 2002, 8:14:10 PM10/12/02
to
That's not exactly true. Blocking code can be extremely fast (i.e. I
advocate DxSock if you have the budget) and easily outpace a non-blocking
design. As for which is faster (ICS vs INDY), since they are both freely
available, why not write a simple benchmarking project given how you will
use the libraries and judge for yourself?

The beauty of non-blocking is that writing protocols is very easy.
Non-blocking requires additional work to handle all the Winsock errors,
events and their associated coordination. It's not rocket science, but can
be difficult if you have a complex protocol and requires you to create a
context object of some sort to maintain state. With blocking sockets, this
logic is easily incorporated into a thread. In the end, blocking code is
typically cleaner and may be faster than the equivalent non-blocking code.
Blocking code often is more efficient than non-blocking on multiprocessor
systems.

Where non-blocking typically excels in in resource management as you don't
have the additional overhead that threads impose.

Additionally, if you are moving to an environment such as Linux, blocking
sockets are the way to go. ICS has a linux port, I believe, but INDY was
there first.

Charles


"DarkSSJ" <dar...@email.it> wrote in message

news:3da8...@newsgroups.borland.com...

Chad Z. Hower aka Kudzu

unread,
Oct 12, 2002, 6:10:33 PM10/12/02
to
"DarkSSJ" <dar...@email.it> wrote in news:3da8...@newsgroups.borland.com:

> I'm going to write a file sharing application with my own protocol. I think
> I will need speed, speed and speed because of server will has to move a lot
> of data.
> Because of non-blocking (ICS) is faster and blocking (Indy) is easyer I
> suppose that I should choose non-blocking right?

Non blocking is not faster. Both Indy and ICS can easily handle a loaded 100
MB ethernet, so speed is not really a factor.

--
Chad Z. Hower (a.k.a. Kudzu) - http://www.hower.org/Kudzu/
"Programming is an art form that fights back"

Qualified help FAST with Indy Experts Support
from the experts themselves:

http://www.atozedsoftware.com/indy/support/

ELKNews - Get your free copy at http://www.atozedsoftware.com

Giuliano Barberi

unread,
Oct 12, 2002, 9:27:04 PM10/12/02
to
You can use INDY under Kylix as well. So Indy has Linux support.

If you are writing a server its more important which OS you are writing for
then which component. None of them really have a HUGE speed difference. The
OS does however, thats why you should write it for Linux ;)

cheers-
Giuliano


Charles Stack

unread,
Oct 12, 2002, 9:42:44 PM10/12/02
to
I said that in my previous post. :-)

Charles


"Giuliano Barberi" <unliq...@hotmail.com> wrote in message
news:3da8...@newsgroups.borland.com...

0 new messages