From flex-dev-return-6187-apmail-incubator-flex-dev-archive=incubator.apache.org@incubator.apache.org Thu Mar 8 20:08:25 2012 Return-Path: X-Original-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D54FF9E82 for ; Thu, 8 Mar 2012 20:08:25 +0000 (UTC) Received: (qmail 73194 invoked by uid 500); 8 Mar 2012 20:08:25 -0000 Delivered-To: apmail-incubator-flex-dev-archive@incubator.apache.org Received: (qmail 73156 invoked by uid 500); 8 Mar 2012 20:08:25 -0000 Mailing-List: contact flex-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: flex-dev@incubator.apache.org Delivered-To: mailing list flex-dev@incubator.apache.org Received: (qmail 73146 invoked by uid 99); 8 Mar 2012 20:08:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2012 20:08:25 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [66.167.159.180] (HELO mail.digitalprimates.net) (66.167.159.180) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Mar 2012 20:08:17 +0000 Received: from DPSBS1.digitalprimates.local ([fe80::5823:d1b4:86c2:3ad0]) by DPSBS1.digitalprimates.local ([fe80::5823:d1b4:86c2:3ad0%22]) with mapi id 14.01.0289.001; Thu, 8 Mar 2012 14:07:56 -0600 From: "Michael A. Labriola" To: "flex-dev@incubator.apache.org" Subject: RE: API for reflection Thread-Topic: API for reflection Thread-Index: AQHM/H5CuDrvM6jysEmYRtFM4rIhUZZfA7OAgABot4CAAAMcgIAAAdAAgAAAl4CAAAOXAIAABoMAgAF7/QCAAA/BgIAAEeoA//+f13CAAGX3gP//nELwgAAXW3yAAAB24A== Date: Thu, 8 Mar 2012 20:07:55 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.254.54] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org >Mike, did you take any measurements? Was the reflection data static or pe= r-instance? I would expect that the traits information for properties woul= d be as efficient or more efficient than metadata. And the >memory overhea= d of describetype would outweigh the memory of data structure. Yes, but I was only looking at items labeled with Inject so my problem spac= e was smaller. I have not tried to do a general purpose version so I don't = have a 1:1 comparison with describeType which is obviously gathering a lot = more. Extrapolating from what I did see, it is much more efficient than sto= ring all of the metadata. My point on opting in was that in increase should= we automatically use this method AND someone also still uses describeType = at all. As far as storage, it was static data. Effectively, again my goal at the ti= me being very single purpose, for each class that had Injection points it s= tored a reference to that Class as well as the properties and methods label= ed with Injection in three arrays (one for constructor arguments, one for f= ields, one for methods). In my particular case, I would also recursively st= ore the same information for classes referenced as types herein, meaning th= at if one of the constructor arguments was of type ClassA then I also recor= ded this same data as I was attempting to optimize recursive object graph b= uilds. Mike