[comp.lang.eiffel] Eiffel Performance

lalonde@nicmad.UUCP (John Lalonde) (02/25/89)

In article <126@aostra.UUCP> stanford@aostra.UUCP (curtis stanford) writes:
>
>I've had Eiffel 2.1b for a couple of months and plan on doing
>a major graphics package with it.  I'd also like to see our department
>switch to Eiffel for our new software development.  After the initial
>investment in getting the basic libraries you need, the time savings is
>incredible!!  It's a well thought out language.  I only wish it ran a bit
>faster ;-) 

We are seriously considering using Eiffel for a new product. However, we 
have no idea what the current performance of the language is. Can anyone
post some information regarding their experiences? I realize that Eiffel
is dependent (to a degree) oh the host system's tools but I think that
it would be helpful to many if some real-life examples were given. It 
would be most helpful if examples were based on the current release of
Eiffel (2.1 ?).

I know that it is hard to compare Eiffel performance to languages that
do not have object-oriented facilities but it necessary because that is
where people are coming from when they consider migrating to a new
language technology. So, can any kind of comparison be made between 
Eiffel and a good C compiler? 

In comparing Eiffel to other languages with object-oriented facilities
how would Eiffel even compare to C++ or g++ with respect to performance?

Finally, can someone describe how Eiffel method invocation works. Is it
based on message passing like Smalltalk and Objective-C or are methods
invoked via procedure calls like C++ ?

Thanks for any information...
-- 
John LaLonde
Nicolet Instrument Corporation
uucp: {ucbvax,rutgers,harvard}!uwvax!astroatc!nicmad!lalonde

stanford@aostra.UUCP (curtis stanford) (02/28/89)

In article <3734@nicmad.UUCP>, lalonde@nicmad.UUCP (John Lalonde) writes:
> We are seriously considering using Eiffel for a new product. However, we 
> have no idea what the current performance of the language is. Can anyone
> post some information regarding their experiences? I realize that Eiffel
> is dependent (to a degree) oh the host system's tools but I think that
> it would be helpful to many if some real-life examples were given. It 
> would be most helpful if examples were based on the current release of
> Eiffel (2.1 ?).

Performance of Eiffel is actually very good.  Since it is translated into
C, the performance is close to that of C.  Of course, it can't be as fast
as pure optimized C code but then again, it's much more maintainable and
reuseable.  I guess you have to decide which is more important.  You can
turn off most of the Eiffel features like assertion checking, pre/post 
condition checking, etc. and after running it through the post processor,
I would say offhand that it comes close to the C equivalent.
> 
> I know that it is hard to compare Eiffel performance to languages that
> do not have object-oriented facilities but it necessary because that is
> where people are coming from when they consider migrating to a new
> language technology. So, can any kind of comparison be made between 
> Eiffel and a good C compiler? 
> 

Eiffel is pre-processor and uses the C compiler and linker as its final step.

> 
> Finally, can someone describe how Eiffel method invocation works. Is it
> based on message passing like Smalltalk and Objective-C or are methods
> invoked via procedure calls like C++ ?
> 

As far as I can tell, Eiffel uses regular C function calls from an array 
of functions.  If you use the post processor, the C functions actually have
the same name as the Eiffel functions if possible.  There is only a slight
overhead for Eiffel function calls as opposed to C function calls and 
there is no extra time needed to call inherited routines no matter how many
levels of inheritance there are.  Maybe Bertrand can correct me if I'm 
spouting erroneous information.


Later ...

Curtis Stanford
Alberta Oil Sands Technology and Research Authority
Calgary, AB

...!uunet!calgary!aostra!stanford