incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael A. Labriola" <labri...@digitalprimates.net>
Subject RE: metadata
Date Wed, 25 Jan 2012 00:59:10 GMT
Sure, I will find the code again and post it somewhere. It is just a bunch of prototype code,
but here is the gist:

I search all of the classes and I find all matching metadata, for example properties noted
with [Inject]. I build a small class that has a reference to each of these classes, along
with the list of properties and, for my particular use case, some information about types
and constructor arguments. Then I wrap that with an API that allows it to be queried.

It does carry some overhead in a variety of ways but a lot of it just ends up being references
to the constant pool. Since I reference that class early, it forces everything else to be
touched, etc., however, subsequent looks ups don't require a describeType and are very fast.
I was trying to make dependency injection much faster and I was limiting the metadata to injection
points. I am not saying we would want to map every piece of metadata in the system this way.

In either case, it sped the DI process up a whole lot as I knew what was required of the constructor
and any fields ahead of time and I could do fully recursive introspected injection with a
minimal performance hit.

Mike

-----Original Message-----
From: omuppi1@gmail.com [mailto:omuppi1@gmail.com] On Behalf Of Om
Sent: Tuesday, January 24, 2012 5:54 PM
To: flex-dev@incubator.apache.org
Subject: Re: metadata

Bumping this thread.

Michael, your note about post-processing metadata into an actionscript class and hence speeding
things up without having to use describeType() sounds very interesting.  Can you please post
more info?

I always wondered about how using descriptType() affects performance.  Your results could
be enlightening.  If we really get such a good performance boost, I am all for adding this
as a feature in our new Apache Flex.

Thanks,
Om

On Sun, Jan 22, 2012 at 11:10 PM, Bogdan DINU <flex.programming@gmail.com>wrote:

> Hi Michael,
>
> would you care to share a link of your experiment sources? :) We might 
> all learn something from it.
>
> Thanks in advance!
>
> Best regards,
> Bogdan
>
> On Sun, Jan 22, 2012 at 10:00 PM, Michael A. Labriola < 
> labriola@digitalprimates.net> wrote:
>
> > I did some experiments a while back where I post-processed metadata 
> > into
> a
> > ActionScript class and then included it in compilation. Basically, I 
> > had
> a
> > class that referenced all places a given metadata tag was being used
> (like
> > for injection points). Versus using describeType, I could speed up 
> > things like robot legs nearly 10 fold.
> >
> > Mike
> >
> >
> > -----Original Message-----
> > From: Michael A. Labriola [mailto:labriola@digitalprimates.net]
> > Sent: Sunday, January 22, 2012 1:58 PM
> > To: flex-dev@incubator.apache.org
> > Subject: RE: metadata
> >
> > There was a compiler change a while back. Basically, if a library 
> > forces
> a
> > given piece of metadata to be kept, then that setting is inherited 
> > by the project. So, when flexunit forces [Test] to be kept in the 
> > library, all projects that include flexunit's swc get that setting
> >
> > -----Original Message-----
> > From: Michael Schmalle [mailto:mike@teotigraphix.com]
> > Sent: Saturday, January 21, 2012 5:21 AM
> > To: flex-dev@incubator.apache.org
> > Subject: Re: metadata
> >
> > Quoting Martin Heidegger <mh@leichtgewicht.at>:
> >
> > > @Michael: Wasn't there some kind of compiler change regarding this?
> > > I can't properly recall it.
> > >
> > > However: As far as I know: the standard meta tags (like bindable) 
> > > do get compiled into the code and are readable with describeType. 
> > > swfs are readable like external files with the proper tools, which 
> > > is why swc inspection works in FlexBuilder, FDT, etc. If you put 
> > > them in an external file you'd make it easier to tamper and break running code.
> > >
> > > yours
> > > Martin.
> > >
> >
> > The Bindable etc, are included in the main build.
> >
> > whiteboard/frameworks/build_framework.xml
> >
> > In the core, framework and mx targets.
> >
> > <compc ...
> >    <keep-as3-metadata name="Bindable"/>
> >    <keep-as3-metadata name="Managed"/>
> >    <keep-as3-metadata name="ChangeEvent"/>
> >    <keep-as3-metadata name="NonCommittingChangeEvent"/>
> >    <keep-as3-metadata name="Transient"/> </compc>
> >
> >
> > As far as the compiler change, I don't know.
> >
> > Mike
> >
> > Notice: This transmission is intended only for the use of the 
> > individual or entity to which it is addressed and may contain 
> > information that is privileged or confidential. Any dissemination, 
> > distribution or copying of this transmission by anyone other than 
> > the intended recipient is strictly prohibited. If you have received 
> > this transmission in error, please
> notify
> > the sender immediately by e-mail or telephone and delete the 
> > original transmission. Thank you.
> >
>
>
>
> --
> http://www.badu.ro
>

Mime
View raw message