Never mind my last comment... But don't you have the big blue "Create issue" button at the top?
/Oskar 2013/1/22 Oskar Berggren <[email protected]>: > You have to select the NHibernate project first I think. > > /Oskar > > > 2013/1/22 Steven Xi <[email protected]>: >> Do you know how can I raise an issue on https://nhibernate.jira.com? >> Can't find anywhere to post/raise anything on it after login. >> >> >> On Tuesday, January 22, 2013 11:05:19 AM UTC, Ricardo Peres wrote: >>> >>> Hello, Steven! >>> >>> Sounds interesting! Why don't you open an improvement issue on >>> https://nhibernate.jira.com? >>> >>> Regards, >>> >>> RP >>> >>> >>> On Tuesday, January 22, 2013 10:08:24 AM UTC, Steven Xi wrote: >>>> >>>> I was started choosing orm systems since few weeks ago and little bit >>>> struggle in use NH or EF. >>>> I know there was a big argument around which one's better, which i'm not >>>> quite interested to discuss here, but I did test some basic performance of >>>> both. >>>> I have to say I really like the flexibility NH provided, but I still bit >>>> concern about the performance, especially materialization of NH is much >>>> slower than EF. >>>> Although I temporary chose EF as the Orm of my currently project, but I >>>> hope that can switch back to NH once the performance has been improved. >>>> >>>> But, anyway, after reviewing and profile NH code for few hours, I tried >>>> to make some small change to improve the performance, >>>> here's what I found. >>>> >>>> When NH materialize Linq query, it uses dynamicinvoke to construct >>>> object, which is obviously slow. After change the constructor call delegate >>>> (both in Linq\ResultTransformer and Linq\ExpressionToHqlTranslationResults) >>>> from Delegate type to Func<object[],object> type ( for item transformer >>>> only >>>> as testing, but list transformer should be same), the time costed reduced >>>> to less than 50%. >>>> >>>> Here's some test result, retrieve 200001 rows, simple entity. >>>> Entity (single table in db): >>>> >>>> public class Person >>>> { >>>> [Key] >>>> public virtual int PersonId { get; protected set; } >>>> >>>> [StringLength(100)] >>>> public virtual string FirstName { get; set; } >>>> >>>> [StringLength(100)] >>>> public virtual string LastName { get; set; } >>>> } >>>> >>>> >>>> >>>> Query(Session is status less): >>>> >>>> int agr = 0; >>>> foreach (var pp in session.Query<Person>().Where(p => >>>> p.PersonId > 0) >>>> .Select(p => new { p.PersonId, p.FirstName, p.LastName >>>> })) >>>> //.Take(100)) >>>> { >>>> agr++; >>>> } >>>> return agr; >>>> >>>> >>>> Before changing this query took 1.2 seconds (while EF took 0.2 second) on >>>> my machine ( SQL express, i5 3.1Ghz 4GB win7). >>>> After changing this query took 0.5 to 0.6 seconds. >>>> >>>> This is the quick change I can discover so far. >>>> Some other place I've looked is NH 's retrieve row/column data and >>>> converting types designed little bit too heavy, but changing this requires >>>> changing the code structur, which I dont have to do yet. Something I can >>>> think about to be small change is it uses lots of Converto.Toxxx() method >>>> which I believe to be a performance impact, and also, after it do a >>>> conversion (in most case is unnecessary) it do a boxing again, so there's >>>> some extra steps can be removed. >>>> >>>> Hope it helps. >>>> >>>> Regards, >>>> Steven >>>> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/nhusers/-/mGZStPgm7MMJ. >> >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
