help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Octave slow in Cygwin


From: John W. Eaton
Subject: Octave slow in Cygwin
Date: Fri, 27 Oct 2006 15:09:51 -0400

On 26-Oct-2006, Ron Crummett wrote:

| I run a dual-boot machine with XP and Ubuntu breezy.  In both instances 
| I run Octave 2.1.73; on Windows, under Cygwin.  I have noticed that 
| Octave runs a good bit slower under Cygwin than on Ubuntu.  I have also 
| noticed that when I install Octave in Ubuntu (using package 
| repositories) that ATLAS is selected as a dependency; not so in Cygwin.  
| Would this be part of the cause for Octave to run slower in Cygwin?

Are doing a lot of linear algebra calculations?  If not, then not
having ATLAS is probably not the cause of the trouble.

Looping is known to be slower with Octave running on a system with
Cygwin than on equivalent hardware with Linux.  That's primarily
because of the way exceptions are handled in Cygwin.  GCC for Cygwin
is compiled to use the sjlj exception handling model; the other option
is dwarf2.  That it is slow might be a bug in Cygwin, or possibly GCC.
There have been many discussions about this problem, but to my
knowledge, no one has yet pinned the problem down and fixed it.
Google for the terms dwarf2, sjlj, and cygwin and see how many hits
you get.

This may be the post that eventually resulted in the move to sjlj
exception handling:

  http://gcc.gnu.org/ml/gcc/2002-11/msg00149.html

It was apparently rediscovered here:

  http://www.cygwin.com/ml/cygwin/2004-11/msg00962.html

If you have no need for compiling code that can make callbacks W32 API
functions to your code, then you could probably build GCC to use
dwarf2 exception handling and then use that to build Octave, and that
will probably speed things up.

Another option is to help with the efforts to get Octave fully
functional with either the MinGW or MSVC compilers (see the recent
threads on the maintainers list) as those don't seem to suffer from
the same problem, even though I think the MinGW compiler also uses the
sjlj exception handling model (please correct me if I'm wrong).

jwe


reply via email to

[Prev in Thread] Current Thread [Next in Thread]