|
|
|
|||||
|
Could it be overkill to use ICE for certain applications?
ICE obviously scales well from a single-cpu single-machine single-language application to a multi-machine multi-language application spread out over the internet. However, when "scaling down", does ICE take advantage of the particular architecture? E.g. Does it stop using sockets, and use a more direct mechanism, when it realises that client and server modules reside on the same machine?
What I'm trying to ask is, if you can predict that an application will always remain a single-language, single-cpu, single-machine app, is there any advantage, in terms of performance, in not using ICE? (maybe due to avoiding sockets and conversion to and from SLICE). The reason I ask, is that the application we are writing is likely to be written purely in Python and mostly distributed over a high speed LAN. However, I like the idea that if we use ICE, and if we decide to write modules in other languages, distribute the application over the Internet, and possibly deploy modules on mobile phones at a later stage, this will require little structural change. On the other hand, using ICE might be considered overkill, especially if we can get better performance using a Python-only solution. |
|
||||||
|
No, Ice for Python does always use sockets. The only alternative for single-machine applications would be shared memory. However, these only provide a performance benefit for very large requests, but on the other hand would add a lot more complexity to the Ice core. Therefore we do not use them. Also note Ice is rarely the bottleneck of your application. Have a look at Matthew's article "Optimizing Performance of File Transfers" in issue 20 of our newsletter Connections for some real-world performance data.
|
|
|||||
|
Could ICE be suitable for applications such as real-time video and audio-streaming? Or would the overhead of translating function calls make this prohibitive? I did notice that Skype is listed as an ICE customer, but is ICE used for the streaming part of the software?
|
|
||||||
|
Of course! Ice can transmit data faster than your hard disk can read or write, so it's certainly suitable for audio/video. See Matthew's article mentioned above for details. I cannot comment on how Skype is using Ice, but there are several customers who use Ice for audio/video.
|
|
|||||
|
Quote:
For more info, see the Telepresence Robot Kit (TeRK). Chris |
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Very, very strange problem with Ice-based applications! | timeguest | Help Center | 1 | 01-17-2006 09:30 AM |
| How do I implment ThreadPool in web-based applications? | mohamedriyaz | Help Center | 1 | 07-20-2005 06:48 AM |
| simplifing building ICE applications | bterwijn | Help Center | 0 | 06-19-2005 04:10 PM |
| Ice with Graphical Applications | spiff | Help Center | 3 | 03-25-2005 04:34 AM |
| How can I integrate fortran/C++ applications | minifat | Help Center | 1 | 12-11-2004 07:44 AM |