Large Object Heap Compaction in Framework 1.1/2.0?

G

Guest

I read on some message board that i can't find anymore saying that the Large
Object Heap is compacted in Framework 1.1 or 2.0. Is this true? I can't seem
to find any ms documentation that said this was fixed. Is large object heap
fragmentation still going to be a problem in Framework 2.0?

thanks
 
W

Willy Denoyette [MVP]

|I read on some message board that i can't find anymore saying that the
Large
| Object Heap is compacted in Framework 1.1 or 2.0. Is this true? I can't
seem
| to find any ms documentation that said this was fixed. Is large object
heap
| fragmentation still going to be a problem in Framework 2.0?
|
| thanks

The LOH is not getting compacted, this is true for both v1.x as for v2.0.
It's simply too expensive to compact the LOH.


Willy.
 
G

Guest

thanks for the reply Willy. I've been reading alot of your previous posts
with respect to memory and its helped alot.

Maybe you can answer another question for me. The reason our app has such
high memory usage is we store an product cache. This works fine except when
the number of products is quite large and we also use terminal services to
host remote users.

The cache we use is a datatable that returns dataviews of the filtered
product lists needed by the app. Is there a way to have multiple processes
share this cache using a datatable so that there is only one datatable for
the multiple terminal server sessions? I'm assuming that using a webservice
and returning a dataview will serialize the datatable its pointing to so that
wouldn't help since each process will essentiallly have a copy of the
datatable. And i believe remoting would have the same problem correct? We
would like to find a solution that uses the same datatable structures so we
don't have to rewrite alot of code, esp for the data filtering.

thanks
 
W

Willy Denoyette [MVP]

Ben,
I'm affraid the only sure and performant way is to use "shared memory" also
called Memory Mapped Files. The only problem is that there is no framework
support for this so you need to implement your own or search for some
existing implementation [1] of a .NET "shared memory" component.
[1]
http://www.winterdom.com/dev/dotnet/index.html
Be sure you can set the security such that the MM portion is sharable
between TS sessions!!!

Willy.


| thanks for the reply Willy. I've been reading alot of your previous posts
| with respect to memory and its helped alot.
|
| Maybe you can answer another question for me. The reason our app has such
| high memory usage is we store an product cache. This works fine except
when
| the number of products is quite large and we also use terminal services to
| host remote users.
|
| The cache we use is a datatable that returns dataviews of the filtered
| product lists needed by the app. Is there a way to have multiple
processes
| share this cache using a datatable so that there is only one datatable for
| the multiple terminal server sessions? I'm assuming that using a
webservice
| and returning a dataview will serialize the datatable its pointing to so
that
| wouldn't help since each process will essentiallly have a copy of the
| datatable. And i believe remoting would have the same problem correct?
We
| would like to find a solution that uses the same datatable structures so
we
| don't have to rewrite alot of code, esp for the data filtering.
|
| thanks
|
| "Willy Denoyette [MVP]" wrote:
|
| >
| > | > |I read on some message board that i can't find anymore saying that the
| > Large
| > | Object Heap is compacted in Framework 1.1 or 2.0. Is this true? I
can't
| > seem
| > | to find any ms documentation that said this was fixed. Is large
object
| > heap
| > | fragmentation still going to be a problem in Framework 2.0?
| > |
| > | thanks
| >
| > The LOH is not getting compacted, this is true for both v1.x as for
v2.0.
| > It's simply too expensive to compact the LOH.
| >
| >
| > Willy.
| >
| >
| >
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top