Fred Wolfe <[email protected]> asked about Stata 8's speed in
two contexts:
1. -use- and -merge-
2. -graph-
Bill answered (1), so let me address (2).
Is Stata 8 slower drawing graphs?
---------------------------------
The short answer is yes, but it will get faster and we hope the time cost is
worth the results and flexibility.
What changed about graphics in Stata 8?
---------------------------------------
Everything.
Graphics are built on the new object oriented facilities in Stata 8. Graphics
is largely programmed in ado-code, though time-critical facilities (such as
rendering thousands of points), are programmed in C and exposed to
ado-programmers through new graphics device interface (GDI) commands.
How does that affect speed?
---------------------------
In Stata 8 there is a fixed overhead when drawing a graph that is independent
of dataset size (but with by() graphs and matrix graphics is dependent on the
number of by groups or matrix cells). This overhead is primarily associated
with creating the objects of which all graphs are now composed. The benefit
of this organization is the flexibility you see in the new graph commands and
the unprecedented ability of graphics ado programmers to create new graphs and
graph commands.
How will graphics get faster?
-----------------------------
Some of the more time-consuming programs that are now written in ado-code can
be converted into internal C. Some of this was built into the graphics system
when designed and some additional conversion was done before Stata 8 shipped.
This conversion does come at a price -- features are more difficult to
extend once they are committed to internal C code and some flexibility is
lost.
Based on our own testing we are currently doing some additional conversions
right now, but we want to get feedback from users before internalizing
programs that only marginally affect speed.
-- Vince
[email protected]
P.S. A note on Fred's timings.
-------------------------
I stated above that there was a fixed overhead associated with drawing a graph
and that this overhead did not depend on dataset size. That is not entirely
true, but it will be in the next ado-update (available sometime tomorrow,
Friday).
Fred's timings showed an unexpectedly large difference in speed going from
Stata 7 to Stata 8 and this difference could only be explained by something
dependent on dataset size. Such large differences will occur only under
Stata/SE and using datasets with many observations and, surprise!, can be
fixed by an ado-file (rather than executable) update.
<end>
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/