From: Gerrit V. <vo...@vo...> - 2012-01-28 02:37:53
|
Hi, On Thu, 2012-01-26 at 08:25 +0100, Christoph Fünfzig wrote: > Hi Gerrit, > > Yes exactly, the code you have still available :-) > I tried a branch from before the fix, and one from tuesday. > > > > > the code is very slow (20 fps with 4 threads, now 1 fps). > > Perhaps we can find a solution which does not require any locks? > > For obvious reasons, I prefer the previous speed. > > that sounds weird. As I changed this I could not tell much of a > difference. > Let me roughly measure things and see if it is really that bad. > You are still referencing your sample program were nothing except a > few transformations are changing per frame ? hmm, interesting. Results so far, the baseline (complex scene manager with 4 windows, normal + position anims) the sync times go down slightly without the global lock. The two curious things I still try to track down, in general the sync is a factor of four slower in your test program. But the big impact you see comes from GeoUInt32Property::StoredFieldType* l = lens->editFieldPtr(); in the FastFollower::intersectGrid. If I change this to const GeoUInt32Property::StoredFieldType* l = lens->getFieldPtr(); the sync times are down to the normal level. I'll try to understand where this is coming from. As my test case also modifies the geometry something weird seems to be triggered here. I'll get back once I know more. kind regards gerrit |