[Mono-list] - XslCompiledTransform.Load missing overloads
daniel
trampster at gmail.com
Thu Sep 24 06:43:50 EDT 2009
Thats a shame.
It appears from our testing that non compiled xslt is an order of
magnitude slower then the compiled version. Which for our purposes is to
slow.
I see from the msdn documentation that loading by type was added in .net
2.0 SP1. So it wasn't in .net 2.0. Which explains why it is missing from
mono 2.0
Even if you can't make a compatible type loading method. Is it possible
to make your own non compatible xslt compiler in order to get the speed
boost. IE the point of XslCompiledTransform is to compile the xslt into
MSIL, this will then execute much faster then a XSLT interpreter.
I guess the question is how can you implement a class with 'Compiled' in
the name using an interpreter. It's just plain misleading. If you can't
make do a 'Compiled' transform then why pretend? XslCompiledTransform
should be maked as not implemented/ throw a not implemented exception
rather then pretend its a compiled transform when its actually an
interpreter.
As a user if I wanted an interpreted transform I would have used
XslTransform. I would rather its was obvious that mono didn't have a
compiled transform then that it appeared to all the world to have one
but actually didn't.
OK so imagine that mono had implemented StringBuilder using normal
string concatenation. Sure it would correctly add strings together but
it wouldn't do the thing that people use it for, That is to provide an
faster more efficient method of adding strings together. Its the same
with XslCompiledTransform. People use XslCompiledTransform because its
faster, because its 'compiled'. That is its whole reason for it
existing, thats the reason why Microsoft added it rather then just
sticking with the existing XslTransform.
If you had a XSLT Compiler you could have a fastest XSLT transformer in
linux. Our testing to date puts the .net implementation of
XslCompiledTransform significantly faster then any other method of
performing XSLT transforms on windows. It would give mono bragging
rights as well as provide a compelling reason for people doing xslt on
linux to use mono.
Thats my 2 cents worth.
Sincerely,
Daniel
Atsushi Eno wrote:
> NET XslCompiledTransform has horrible design choice that there is *no*
> public API
> exposed to make compiled XSLT implementable. There is no choice for us
> to implement
> it at least from public documentation. We won't support it beyond any
> wrapper.
>
> (I feel almost no need to add this comment, but: loading stylesheet by
> compiled type is
> newer stuff than we have finished 2.0 API. Besides/anyways I don't
> really care about tiny,
> cosmetic, minor API missings like other API lands.)
>
> Atsushi Eno
>
> On 2009/09/24 14:50, Daniel Hughes wrote:
>
>> XslCompiledTransform.Load appears to only have 6 overloads where as
>> .net has 8. The two missing overloads are for loading an already
>> compiled transform from a type. These are the overloads I need. When I
>> started investigating this I also recognized that the transform on
>> mono appears to be a lot slow then it should be.....
>>
>> I have a horrible thought that XslCompiledTransfrom in mono is just a
>> wrapper for XslTransfrom and so it not compiled at all... so none of
>> the speed improvement are available.
>>
>> Please tell me this is not the case and that I am just doing something
>> wrong. XslCompiledTransfrom is a .net 2.0 libary I had heard that mono
>> had a complete implementation of .net 2.0.
>>
>> Cheers,
>> Daniel Hughes
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Mono-list maillist - Mono-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-list
>>
>>
>
> _______________________________________________
> Mono-list maillist - Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
>
More information about the Mono-list
mailing list