Archived
This forum has been archived. Please start a new discussion on GitHub.
Performance problems on RedHat Linux 2.4.21 kernel
Hi all,
I'm in the process of evaluating ICE to propose it as a middleware solution to be adopted in my current project.
I run some tests under windows 2000 and everything was fine. In the last couple of days I wanted to run some tests using some high performance RehHat linux machines (4 2.GHz processors with hyperthreading), and gcc 3.2.3; and I had some problems.
The first one was that the compilatrion halted because it couldn't find a definition for the DB_LOG_AUTOREMOVE macro while compiling Freeze. Since I didn't need Freeze, I put a definition to 1. The compilation then ended successfully (all the tests except the Freeze one passed).
However, when I run the tests the performance were incredibly low--an order of magnitude less than much smaller windows machines.
I was wondering if I missed something obvious, if not I can even post the c++ code I used for the tests.
Thanks,
Giovanni
I'm in the process of evaluating ICE to propose it as a middleware solution to be adopted in my current project.
I run some tests under windows 2000 and everything was fine. In the last couple of days I wanted to run some tests using some high performance RehHat linux machines (4 2.GHz processors with hyperthreading), and gcc 3.2.3; and I had some problems.
The first one was that the compilatrion halted because it couldn't find a definition for the DB_LOG_AUTOREMOVE macro while compiling Freeze. Since I didn't need Freeze, I put a definition to 1. The compilation then ended successfully (all the tests except the Freeze one passed).
However, when I run the tests the performance were incredibly low--an order of magnitude less than much smaller windows machines.
I was wondering if I missed something obvious, if not I can even post the c++ code I used for the tests.
Thanks,
Giovanni
0
Comments
-
The processors are 2.8 GHz
Giovannigasproni wrote:Hi all,
I'm in the process of evaluating ICE to propose it as a middleware solution to be adopted in my current project.
I run some tests under windows 2000 and everything was fine. In the last couple of days I wanted to run some tests using some high performance RehHat linux machines (4 2.GHz processors with hyperthreading), and gcc 3.2.3; and I had some problems.
The first one was that the compilatrion halted because it couldn't find a definition for the DB_LOG_AUTOREMOVE macro while compiling Freeze. Since I didn't need Freeze, I put a definition to 1. The compilation then ended successfully (all the tests except the Freeze one passed).
However, when I run the tests the performance were incredibly low--an order of magnitude less than much smaller windows machines.
I was wondering if I missed something obvious, if not I can even post the c++ code I used for the tests.
Thanks,
Giovanni0 -
Which test or demo gave you bad performance? Did you compile with optimization? Which compiler flags did you exactly use?0
-
Also, which version of Ice are you using?0
-
marc wrote:Also, which version of Ice are you using?
Hi Marc,
The test is one we've written internally, the ICE version is 2.1.2, and we used -DNDEBUG, and no -Ox optimization flags.
Anyway, yesterday we spotted the problem: in that specific platform (Linux with gcc 3.2.3) we wrote a call
IceUtil::ThreadControl::sleep( IceUtil::Time::milliSeconds( sleepMillis_ ) );
This function was behaving strangely when sleepMillis_==0: it actually made the thread sleep for one second. We commented it out and everything was fine.
I think it may be a bug in the compiler.
Giovanni0 -
If you measure performance, it's very important that you use -O2 or -O3. Without optimization enabled, Ice is much slower, in particular because of the STL.0
-
ICE was compiled out of the box with optimization turned on. Our code wasn't, however the performances were amazing :-)
Giovanni0 -
Regarding the DB_LOG_AUTOREMOVE problem, it's probably because the version of Berkeley DB you have installed is too old.
DB_LOG_AUTOREMOVE was introduced in Berkeley DB 4.2; Ice needs 4.2 or 4.3.
Bernard0