Hi
First of all, i think you are doing really great job, Bigh thanks for this product.
Please take no offence, but once again i was going trough the source code of
TvEngine3 & Mediaportal itself, and i noticed that there was a huge amount og
"GC.Collect & GC.WaitforPendingFinalizers" lines in the code. My humble opinion is that it's not a good thing at all.
I've been sitting in same table with some some "MS Evangelist" to talk about this
same issue. I had those lines in my code guite often too, while i was creating a
"Language lab Media Assistant". Within few hours they made me belive that GC itself knows when to run, better than I do.
So many GC.Collect lines implicate usually Desing flaw, or a bug that is hiding behind these lines. For example
ReleaseComObject is missing/used in wrong place etc. So what i did was to remove them all, and started hunting bugs from my code. Actually there was less than i expected, but the impact was much smoothly running
software. Mysterious freezes were gone just by removing all GC:Collets. Speed increased guite a lot.
So i took a Mp & TvEngine code and removed them all by Find & Replace just to look the impact. I'm glad i did.
Now my Mp runs much better, smoother. One "maybe a bug" rised, but i haven't studiet it yet. So i've only tried Mp, not TvEngine yet. In TvEngine there was lot less of those lines. GC.:Collect uses lot of Cpu time, and if used wrongly it might even kill something it should not.
The only place i can think of where GC.Collect could be usefull might be a game with lot lot of data in memory, and you might want to run GC.Collect in the end of Game Levels, before loading new level.
But hey, It's your product, You decide.
regs,
te3hpurp
First of all, i think you are doing really great job, Bigh thanks for this product.
Please take no offence, but once again i was going trough the source code of
TvEngine3 & Mediaportal itself, and i noticed that there was a huge amount og
"GC.Collect & GC.WaitforPendingFinalizers" lines in the code. My humble opinion is that it's not a good thing at all.
I've been sitting in same table with some some "MS Evangelist" to talk about this
same issue. I had those lines in my code guite often too, while i was creating a
"Language lab Media Assistant". Within few hours they made me belive that GC itself knows when to run, better than I do.
So many GC.Collect lines implicate usually Desing flaw, or a bug that is hiding behind these lines. For example
ReleaseComObject is missing/used in wrong place etc. So what i did was to remove them all, and started hunting bugs from my code. Actually there was less than i expected, but the impact was much smoothly running
software. Mysterious freezes were gone just by removing all GC:Collets. Speed increased guite a lot.
So i took a Mp & TvEngine code and removed them all by Find & Replace just to look the impact. I'm glad i did.
Now my Mp runs much better, smoother. One "maybe a bug" rised, but i haven't studiet it yet. So i've only tried Mp, not TvEngine yet. In TvEngine there was lot less of those lines. GC.:Collect uses lot of Cpu time, and if used wrongly it might even kill something it should not.
The only place i can think of where GC.Collect could be usefull might be a game with lot lot of data in memory, and you might want to run GC.Collect in the end of Game Levels, before loading new level.
But hey, It's your product, You decide.
regs,
te3hpurp