On Fri, Mar 2, 2012 at 12:41 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
Hi,
Thanks for re-pinging us. I somehow did not see it before. Strange :).
As far as I understand, you are worried about speed. Is that right?
I was playing a bit (updating Moose extensions to latest Fuel) and I also
noticed the same as Martin. The 70% of the export time is taken by these 4
methods: #numberOfLinesOfCode, #cyclomaticComplexity, #numberOfConditionals
and #numberOfStatements which seem to be computed during the export.
I don't really know much about Moose, but I attach a screenshot of the
profile.
So, is that correct/expect? are those values already calculated/stored
somewhere?
thanks
In any case, the problem with your proposition is that some properties
are not stored in explicit instance variables, but in a dictionary in
EntityState. That means that only looking at the instance variables
you can miss important things. The ultimate truth of what needs to be
serialized lies in the meta-description. I would not know how to go
around that.
Cheers,
Doru
On Fri, Mar 2, 2012 at 12:16 PM, Mariano Martinez Peck
<marianopeck(a)gmail.com> wrote:
re-ping?
On Wed, Jan 4, 2012 at 10:47 PM, Mariano Martinez Peck
<marianopeck(a)gmail.com> wrote:
>
> ping?
>
> On Thu, Dec 29, 2011 at 4:31 AM, Martin Dias <tinchodias(a)gmail.com>
wrote:
>>
>> Hello,
>>
>> I'm looking to improve current implementation, and maybe you can help
me.
>>
>> The current procedure is based in a custom serialization of each
>> MooseElement. It's inspired on MSE, I describe this with the following
>> pseudo-code:
>>
>> serialize: aMooseElement
>> (MooseModel meta descriptionOf: aMooseElement class) allAttributes
>> do: [ :anAttribute |
>> | values |
>> values := anAttribute getFrom: aMooseElement.
>> (self shouldIgnore: anAttribute withAll: values)
>> ifFalse: [ self serialize: anAttribute withAll: values ] ].
>>
>> where:
>>
>> shouldIgnore: anAttribute withAll: values
>> ^ values isEmpty or: [
>> anAttribute isDerived or: [
>> anAttribute type == FM3MetaDescription boolean and: [
>> values size == 1 and: [
>> values first == false ]]]]
>>
>>
>> The advantage of serializing the MooseElements in this way (and not
just
>> as a normal object) is to avoid storing
unnecessary stuff that
aMooseElement
>> references.
>>
>> It's a disadvantage using FM3PropertyDescription>>getFrom: (and then
to
>> import, FM3PropertyDescription>>setOn:values:) which ends sending
#perform:
>> of the corresponding accessor selector.
It'd be better to use
#instVarAt:
>> (and #instVarAt:put:) as Fuel normally
does.
>>
>> I hope I've been clear enough to explain up to this point. Now my
>> question:
>>
>> Do you think Fuel can do something on each MooseElement like
>>
>> - clean up some unnecessary references
>> - declare some instance variables as transient
>> - if it's not good idea to modify the elements, create a method like
>> MooseElement>>copyWithoutDerivedValues, and so actually serialize such
copy
instead of the original element
- any other
???
and thus, serialize the MooseElements as normal Fuel objects, removing
the custom procedure.
I'll be happy to receive some help from Moose and Fame experts!
Thanks in advance.
Martín
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Mariano
http://marianopeck.wordpress.com
--
Mariano
http://marianopeck.wordpress.com
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Every thing has its own flow"
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev