1

Are there any tricks involved in getting plug-in data sources to run at higher speeds, similar to the built in types? I've noticed that a simple plugin-data source will run many times slower than the equivelent data loaded from a shapefile or personal geodatabase, and the extra time seems to be mainly in the rendering phase.

Are there any tricks available to improve this in ArcObjects?

1 Answer 1

2

I suspect unmanaged C++ would be fastest. It's not clear to me if this:

This is a special interface that may be implemented by the plug-in cursor helper class of a plug-in data source. IPlugInFastQueryValues cannot be implemented in Visual Basic. Its FastQueryValues method is more efficient than the QueryValues method on IPlugInCursorHelper.

This interface is only appropriate for plug-in data sources implemented in C++.

... implies IPluginFastQuery won't work in C#. Maybe the documentation is from the pre-.NET era.

Might be worth trying. (I've never used it though).

5
  • IPluginFastQuery can be implemented in C#. The documentation in this case, indeed, does not take .NET languages into account.
    – Petr Krebs
    Commented Oct 2, 2010 at 3:19
  • Anyway, plugin data sources ARE slow, I guess there is not much you can do about that. This is an area of ArcGIS framework which has never been put into intensive use (do you know of any third-party plugins?) and as such has never been given enough attention performance-wise.
    – Petr Krebs
    Commented Oct 2, 2010 at 3:22
  • @petr k.: Esri's data interop extension uses it, as well as Safe's FME: safe.com/solutions/application/esri/index.php Commented Oct 2, 2010 at 17:23
  • That being said - I'd like to see how to implement IPluginFastQuery in C#. It doesn't look possible without reverting to to C++, since you need to be able to deallocate BSTR references. If you know of a sample, I'd love to see it. @Kirk: Do you know if this interface really makes this much faster? Commented Oct 2, 2010 at 17:24
  • @Reed: sorry, not sure if it would make it much faster. Since it is only used for copying the attributes (and not the geometry) the amount of improvement probably depends on how many attributes (fields) you have. Commented Oct 2, 2010 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.