"Fast-COM" Implementation Technology
When BricsCAD was ported to
Linux, we were faced with the problem to provide the COM-based LISP
functions (the vla, vlax, vlr function sets) under Linux as well - as there is no COM
available with Linux (and same for Mac platform as
well).
The implementation of "Fast-COM" mode is based
on an internal descriptor table, which describes the
BricsCAD-built-in objects and entities with their properties and
methods, very similar to Microsoft COM TypeLibraries (.tlb and .idl
files).
Property functions can be called in usual way
- as dedicated functions (vla-get-<property> ...) or using generic (vlax-get-property '<property>
...), the "Fast-COM" mode covers
both.
Method functions can be called in usual way -
as dedicated functions (vla-<method> ...) or
using generic (vlax-invoke-method
'<method> ...), the "Fast-COM"
mode covers both.
Primarily intended to provide the
vla,
vlax,
vlr function sets
for BricsCAD Linux/Mac, the "Fast-COM" mode has also been enabled
under Windows, providing significant performance improvements over
standard Windows COM - usually by 50% up to 1000% (factor 10) and
more, and also reduces memory load for both Windows and Lisp engine
memory.
Reduced Lisp memory load causes indirect
performance improvements, by less GarbageCollections.
Some implementation background :
Implementing the "Fast-COM"
mode is ongoing work - with each BricsCAD version, more properties
and methods will support this mode, and will get available for
BricsCAD Linux then as well.
Just for interest, here is a principle scheme about
"Fast-COM" implementation mechanism and
code + data flow.
This "Fast-COM" implementation can be
activates and deactivated at runtime by Lisp code - for details
please see Enable + Disable
"Fast-COM.
The summaries below lists all properties and
methods, which currently support "Fast-COM" mode; therefore, they
are already available on Linux/Mac platforms.
© Menhirs NV. All rights reserved. |