EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  <20022003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  <20022003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: 3.14 questions
From: "Jeff Hill" <[email protected]>
To: "'Carl Lionberger'" <[email protected]>, "'Epics Tech-Talk'" <[email protected]>
Cc: "'Larry Doolittle'" <[email protected]>
Date: Tue, 30 Apr 2002 15:13:19 -0600
> Note that we have not tested large arrays here at the front end.  

Large arrays are supported in the old server in the last beta release;
however, some significant patches have been made against the new code
since then. I am currently working on support for large arrays in the
portable server library, and hopefully this work will make it into the
next release of R3.14.

> 
> 3.  The size of many of the libraries (libCom and libCa are good
> examples.) seems to have increased substantially.  iocCoreLib.munch
> looks to be almost twice the size of 3.13.5 iocCore.  I'm sure I've
> missed some discussions of the merits of having ever-increasing 
> amounts of C++ in EPICS base-- what are the perceived trade-offs here?
> 

There are many new features, and improved structure, in R3.14 which
would increase the size of iocCore independent of the use of C++.
Nevertheless, lacking any easy way to proceed I am looking at the raw
difference in object sizes between R3.14 and R3.13.

The difference on win32-x86 is estimated to be about 180 KB based on the
increases in ca.dll and com.dll (the components using c++ in R3.14). A
quick look at this indicates that we are talking about a vxWorks-ppc603
object size difference of about 500 KB after the symbols are stripped,
and we include the additional object code that is incrementally loaded
under R3.13. Therefore, the difference between C++ and C code appears to
vary significantly with the optimizing qualities of the compiler and the
components of EPICS that are included in the total. 

With RAM memory selling for about 50 cents per megabyte, and with new
VME processors arriving with either 32 MB or 64 MB of RAM, it's becoming
less important to dwell on code size changes of this magnitude.
Nevertheless, there are many legacy 16 MB 68k based IOCs and the vxWorks
OS is also growing in size over time. So therefore, I will be looking at
this in more detail. I do notice that there are some large changes in
code sizes with the gnu ppc compiler if I fiddle with try/catch blocks.
Code size could also be reduced at the expense of execution efficiency
if templates and the use of the inline keyword were restructured. The
release notes for the gnu compiler in Tornado 2.1 mention that exception
handling code size has been reduced. There is also a completely
rewritten inline function optimizer in gcc 3.0, but this compiler is not
yet available for Tornado.

What are the benefits of C++? Probably the most significant benefit is
the reduced likelihood of making mistakes when maintaining large source
codes. 

Jeff



Replies:
Re: 3.14 questions Larry Doolittle
RE: 3.14 questions Ralph . Lange
References:
3.14 questions Carl Lionberger

Navigate by Date:
Prev: Re: DM to EDM Rolf Keitel
Next: Re: 3.14 questions Larry Doolittle
Index: 1994  1995  1996  1997  1998  1999  2000  2001  <20022003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: 3.14 questions Carl Lionberger
Next: Re: 3.14 questions Larry Doolittle
Index: 1994  1995  1996  1997  1998  1999  2000  2001  <20022003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·