Is QNX too slow ???

Hello

I have a program ( quite a little one ) that was written using VC++ and then ported to QNX.
The program is TCP/IP server which should have 50~100 client & server socket connections and 100~200 threads to serve them. Client connection are used to update data from some devices and these updates must be done as soon as possible (it should take less than 50 ms for each update). Server connections just listen for some ports and are used to pass updated data to client or vice versa (clients ask QNX-server to write data to device). The problem is it works too slow, even slower than on Windows 2000 !! The main idea of porting the application to QNX was to increase update rate. But it’s not the only problem: when there is a lot of threads the program sometimes just terminates. The more threads the quicker this happens… Very strange considering that there was no behaviour like this on NT. And it doesn’t happens because main thread has terminated or something, it’s closed by OS.
Does anyone has any idea why all this may happen ?? I’m new in QNX programming and I’m really stuck with this.

Thanks.

When it dies, do you get a corefile in /var/dumps?

chris


Serg <skozak@eleks.lviv.ua> wrote:

[-- text/plain, encoding quoted-printable, 24 lines --]


Hello

I have a program ( quite a little one ) that was written using VC++ and then ported to QNX.
The program is TCP/IP server which should have 50~100 client & server socket connections and 100~200 threads to serve them. Client connection are used to update data from some devices and these updates must be done as soon as possible (it should take less than 50 ms for each update). Server connections just listen for some ports and are used to pass updated data to client or vice versa (clients ask QNX-server to write data to device). The problem is it works too slow, even slower than on Windows 2000 !! The main idea of porting the application to QNX was to increase update rate. But it’s not the only problem: when there is a lot of threads the program sometimes just terminates. The more threads the quicker this happens… Very strange considering that there was no behaviour like this on NT. And it doesn’t happens because main thread has terminated or something, it’s closed by OS.
Does anyone has any idea why all this may happen ?? I’m new in QNX programming and I’m really stuck with this.

Thanks.


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Yes, but what should I do with it ?


“Chris McKillop” <cdm@qnx.com> wrote in message
news:asj5u2$cjc$2@nntp.qnx.com

When it dies, do you get a corefile in /var/dumps?

chris


Serg <> skozak@eleks.lviv.ua> > wrote:
[-- text/plain, encoding quoted-printable, 24 lines --]


Hello

I have a program ( quite a little one ) that was written using VC++ and
then ported to QNX.
The program is TCP/IP server which should have 50~100 client & server
socket connections and 100~200 threads to serve them. Client connection are

used to update data from some devices and these updates must be done as soon
as possible (it should take less than 50 ms for each update). Server
connections just listen for some ports and are used to pass updated data to
client or vice versa (clients ask QNX-server to write data to device). The
problem is it works too slow, even slower than on Windows 2000 !! The main
idea of porting the application to QNX was to increase update rate. But it’s
not the only problem: when there is a lot of threads the program sometimes
just terminates. The more threads the quicker this happens… Very strange
considering that there was no behaviour like this on NT. And it doesn’t
happens because main thread has terminated or something, it’s closed by OS.

Does anyone has any idea why all this may happen ?? I’m new in QNX
programming and I’m really stuck with this.

Thanks.


\

Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

Serg <skozak@eleks.lviv.ua> wrote:

Yes, but what should I do with it ?

It means you have a bug in your code. :wink:

Build your application with the -g option to the compiler and linker and
then do…

gdb ./app /var/dumps/app.core

chris


“Chris McKillop” <> cdm@qnx.com> > wrote in message
news:asj5u2$cjc$> 2@nntp.qnx.com> …
When it dies, do you get a corefile in /var/dumps?

chris


Serg <> skozak@eleks.lviv.ua> > wrote:
[-- text/plain, encoding quoted-printable, 24 lines --]


Hello

I have a program ( quite a little one ) that was written using VC++ and
then ported to QNX.
The program is TCP/IP server which should have 50~100 client & server
socket connections and 100~200 threads to serve them. Client connection are
used to update data from some devices and these updates must be done as soon
as possible (it should take less than 50 ms for each update). Server
connections just listen for some ports and are used to pass updated data to
client or vice versa (clients ask QNX-server to write data to device). The
problem is it works too slow, even slower than on Windows 2000 !! The main
idea of porting the application to QNX was to increase update rate. But it’s
not the only problem: when there is a lot of threads the program sometimes
just terminates. The more threads the quicker this happens… Very strange
considering that there was no behaviour like this on NT. And it doesn’t
happens because main thread has terminated or something, it’s closed by OS.
Does anyone has any idea why all this may happen ?? I’m new in QNX
programming and I’m really stuck with this.

Thanks.


\

Chris McKillop <> cdm@qnx.com> > “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/

\


Chris McKillop <cdm@qnx.com> “The faster I go, the behinder I get.”
Software Engineer, QSSL – Lewis Carroll –
http://qnx.wox.org/