Hi, On Fri, 2005-12-09 at 08:33 -0500, D Bera wrote: > PS: One of the places where C#-search api might be slower that > libbeagle is XML serialization. Creating an XML serializer is costly > and serializing/deserialing is slow in C#. Apparently the tools like > genxs.exe and sgen.exe > http://www.mono-project.com/XML#genxs.exe > are helpful in these scenarios. If anybody has experience using them > or knows how useful are they, please let me know.
genxs is only for customizing the serialization process. It doesn't result in any precompiled code, so that wouldn't really affect performance in any appreciable way. In the simplest case, it looks like the biggest overhead in creating an XmlSerializer is that it calls into the System.Configuration.ConfigurationSettings code, which causes a bunch of XML to be parsed (ironic, yes). Removing that code reduces overhead by about 65%, but this is only on the order of 100ms. For us, in creating the XmlSerializer, it looks like the overhead is in getting type information for all of the various different Request classes. It's a one-time cost -- for me about half a second -- so in long-living applications like Best or Holmes it won't be noticeable. It's only in short-lived apps (like the now-unused beagle-index-url) that it's a problem. Actual deserialization speed I haven't measured, but it doesn't surprise me that the C version is faster. It's a lower-level implementation, and it ends up being a lot more code to parse. Moreover, I'm not sure if moving to a specialized parser in C# would gain us that much, and I certainly don't think it's worth the effort at this point. Generally speaking, I'm rather happy with the *querying speed* of Beagle. What I'm not satisfied with is the *rendering speed* of Best. Just using Holmes, you can see that it's much, much better. Joe _______________________________________________ Dashboard-hackers mailing list [email protected] http://mail.gnome.org/mailman/listinfo/dashboard-hackers
