|
FAST Protocol
< Previous Next >
Re: Improving FAST
Marc Battyani / HPC Platform <> 25 Feb 2010 1:45PM ET Hi Dale,
This is a recurrent topic ;-)
I posted about this earlier and I still think it should be a mandatory attribute in the templates.
Proposal for a MaxLength string attribute:
http://fixprotocol.org/discuss/read/702f62f0
maxLength attribute for strings and vectors:
http://fixprotocol.org/discuss/read/e5c03358
Marc
> Continuing my suggestions for improving FAST...
>
> Dynamic memory allocation can be a real performance killer. In C++ there
> are a number of techniques that can be used to avoid dynamic memory
> allocation or minimize its impact including keeping thread-specific
> memory pools and caching objects for re-use rather than deleteing/newing
> them, etc.
>
> The one technique I would like to use, however, eliminates dynamic
> memory allocation altogether. That is preallocating space for the
> largest possible message. I have been able to use this with data feeds
> from particular sources to achieve some dramatic results. However, given
> the current definition of FAST templates there is no way to achieve
> these results in the general case, because there is no way to determine
> what "the largest possible message" is.
>
> So my suggestion is add upper-bound information to field instructions
> that produce variable sized objects. In particular, the sequence,
> string, and byte vector instructions could have a bound="n" attribute
> that would be a commitment by the data source/template author that field
> being transmitted would never exceed 'n' elements. This information is
> often available to the data source/encoder. Making it available in the
> template would give the decoder the information it needs to avoid
> dynamic allocation in the general case.
>
> Of course this would be an optional attribute with the default being
> that the number of elements is unbounded (or at least indeterminate.)
>
> Dale
> --
> Principal Software Engineer Object Computing, Inc (www.ociweb.com) Lead
> Developer of the QuickFAST Open Source C++ implementation of the FAST
> protocol. (www.quickfast.org)
Improving FAST Dale Wilson / Object Computing, Inc 29 Jan 2010 11:09AM ET Re: Improving FAST Marc Battyani / HPC Platform 25 Feb 2010 1:45PM ET |