[Kst] Plugin updates

George Staikos staikos at kde.org
Thu Jul 8 00:28:05 CEST 2004

  Clearly there is a problem where plugin updates are called far too often 
right now, causing high CPU usage.  However, I think we have to be careful 
about how conservative we are in updates.  If we only update when input 
vectors have updated, then plugins can't use any external sources of 
information.  They may also have updated, and if we don't call update, then 
the plugin remains stale.  Any thoughts on how this should work?  Some of the 
obvious ones are:

1) track the last update counter value for the dependency vectors and only 
update() if the value has changed and an update has happened in that vector 
since then.
	problem: scalars are also dependencies
	problem: need to track the last "update" for each vector
	problem: external data sources not tracked
2) update the plugin whenever any vector changes during the update loop
	problem: scalars are also dependencies
	problem: inefficient
	problem: external data sources not tracked
3) ask the plugin if it wants to be updated
	problem: breaks out of the plugin definition as we try to conform to it
	problem: insufficient - it won't know if a scalar or vector has been updated 
so we need to combine this with 1) or 2) at least

It's not an easy problem.  I was wondering, what if we actually add another 
layer in here?
XML+C plugin|
Kst Data Plugin
	C++ + desktop file

This greatly simplifies things internally I think.  We would provide an API 
and tools for plugin authors to write wrappers for their XML+C plugin which 
can do all the hard things we try [but fail] to do now.

George Staikos
KDE Developer				http://www.kde.org/
Staikos Computing Services Inc.		http://www.staikos.net/

More information about the Kst mailing list