Hi Roger, I already tried to compile xerces with ICU but it makes no difference at all. However on Windows platform also MSXML internally converts all to UTF-16 (because everything on Windows nowadays uses Unicode with wchar_t=UTF-16), and Xerces uses internal Windows API, but I see more than a 2x slowdown then MSXML for a just a load of a document.
But, as I said my big performance problem is with XQilla queries. Also in my benchmarks of the selectNodes() I am already specifying u16 literals. I will try to use valgrind, but I have very few hopes at the moment... Thanks Davide > -----Messaggio originale----- > Da: Roger Leigh <rle...@codelibre.net> > Inviato: giovedì 21 luglio 2022 01:49 > A: c-users@xerces.apache.org > Oggetto: RE: Xerces-C++ and XQilla bad performance > > Hi Davide, > > I would suggest running your program under valgrind with kcallgrind and > profiling the execution. When you view the results, you should see where > the hotspots are. > > Based upon my previous profiling experiments, I suspect you'll find that over > 50% of the runtime is spent in the transcoder doing UTF-8 to UTF-16 > conversions (and vice-versa). > > If this is the case, I would suggest trying a different transcoder and > reprofiling. This may be where the Windows performance difference lies. > An additional optimisation would be to reduce the number of conversions. > For example, if you are repeatedly transcoding a UTF-8 string for use with a > function requiring UTF-16, you can cache the conversion. Or use char16_t > with u16 string literals. At the expense of portability with older compilers. > > Kind regards, > Roger > > > -----Original Message----- > > From: Davide Capodaglio <davide.capodag...@axelsw.it> > > Sent: 20 July 2022 14:44 > > To: c-users@xerces.apache.org > > Subject: Xerces-C++ and XQilla bad performance > > > > Is there any known way to optimize the performance of Xerces-C++ and > > XQilla in both loading and XPath execution?