I'm puzzled..
let's say I have an array of streamwriters. a lot..
'the code is something like
dim sw() as streamwriter
redim sw(10000)
'instantiate
for i as int16 = 0 to 9999
sw(i) = new streamwriter(arrayOfFileName(i))
next
'write to the files
for i as int16 = 0 to 9999
sw(i).write("123 ")
next
I monitor the memory from task manager. I can understand
that memory level drops when I instantiate the
streamwriters.
However, I cannot understand, during the streamwriter
writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the
writing... but the memory is not released. is it waiting
for GC?
Anyone knows how I can free the memory so I don't run out
of memory half-way thru writing the files? 8 3251
Why you need a lot of StreamWriters, it's a waste of memory, in the example
you show us, you only write one file at time, why not use only 1 stream
writer?
--
Bela Istok
MVP C#
Caracas, Venezuela
"Jon" <an*******@discussions.microsoft.com> wrote in message
news:05****************************@phx.gbl... I'm puzzled.. let's say I have an array of streamwriters. a lot..
'the code is something like dim sw() as streamwriter redim sw(10000)
'instantiate for i as int16 = 0 to 9999 sw(i) = new streamwriter(arrayOfFileName(i)) next 'write to the files for i as int16 = 0 to 9999 sw(i).write("123 ") next
I monitor the memory from task manager. I can understand that memory level drops when I instantiate the streamwriters. However, I cannot understand, during the streamwriter writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the writing... but the memory is not released. is it waiting for GC?
Anyone knows how I can free the memory so I don't run out of memory half-way thru writing the files?
Why you need a lot of StreamWriters, it's a waste of memory, in the example
you show us, you only write one file at time, why not use only 1 stream
writer?
--
Bela Istok
MVP C#
Caracas, Venezuela
"Jon" <an*******@discussions.microsoft.com> wrote in message
news:05****************************@phx.gbl... I'm puzzled.. let's say I have an array of streamwriters. a lot..
'the code is something like dim sw() as streamwriter redim sw(10000)
'instantiate for i as int16 = 0 to 9999 sw(i) = new streamwriter(arrayOfFileName(i)) next 'write to the files for i as int16 = 0 to 9999 sw(i).write("123 ") next
I monitor the memory from task manager. I can understand that memory level drops when I instantiate the streamwriters. However, I cannot understand, during the streamwriter writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the writing... but the memory is not released. is it waiting for GC?
Anyone knows how I can free the memory so I don't run out of memory half-way thru writing the files?
hi Bela,
everytime some data comes in, I want to write(and append)
these data to the many files. Also, I don't want to close
these files. I want to append the data. Finally when the
data stops coming in, I can close these files, and will
get the final files.
if I write to these files one by one, each time the data
comes in,
sw.open
sw.write
sw.close,
it will take forever. -----Original Message----- Why you need a lot of StreamWriters, it's a waste of
memory, in the exampleyou show us, you only write one file at time, why not
use only 1 streamwriter?
-- Bela Istok MVP C# Caracas, Venezuela
hi Bela,
everytime some data comes in, I want to write(and append)
these data to the many files. Also, I don't want to close
these files. I want to append the data. Finally when the
data stops coming in, I can close these files, and will
get the final files.
if I write to these files one by one, each time the data
comes in,
sw.open
sw.write
sw.close,
it will take forever. -----Original Message----- Why you need a lot of StreamWriters, it's a waste of
memory, in the exampleyou show us, you only write one file at time, why not
use only 1 streamwriter?
-- Bela Istok MVP C# Caracas, Venezuela
As far as i know, .Close() isn't the same as calling the Garbage Collection.
if you set the Variable to nothing the memory will release the next time
around the GC runs
If you call the .Dispose() method, then GC will immediatly clean up and
release memory. (i don't remember is StramWriter implements iDispose)
Read about Dispose and Nothing in the MSDN documentation.
"Jon" <an*******@discussions.microsoft.com> wrote in message
news:05****************************@phx.gbl... I'm puzzled.. let's say I have an array of streamwriters. a lot..
'the code is something like dim sw() as streamwriter redim sw(10000)
'instantiate for i as int16 = 0 to 9999 sw(i) = new streamwriter(arrayOfFileName(i)) next 'write to the files for i as int16 = 0 to 9999 sw(i).write("123 ") next
I monitor the memory from task manager. I can understand that memory level drops when I instantiate the streamwriters. However, I cannot understand, during the streamwriter writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the writing... but the memory is not released. is it waiting for GC?
Anyone knows how I can free the memory so I don't run out of memory half-way thru writing the files?
As far as i know, .Close() isn't the same as calling the Garbage Collection.
if you set the Variable to nothing the memory will release the next time
around the GC runs
If you call the .Dispose() method, then GC will immediatly clean up and
release memory. (i don't remember is StramWriter implements iDispose)
Read about Dispose and Nothing in the MSDN documentation.
"Jon" <an*******@discussions.microsoft.com> wrote in message
news:05****************************@phx.gbl... I'm puzzled.. let's say I have an array of streamwriters. a lot..
'the code is something like dim sw() as streamwriter redim sw(10000)
'instantiate for i as int16 = 0 to 9999 sw(i) = new streamwriter(arrayOfFileName(i)) next 'write to the files for i as int16 = 0 to 9999 sw(i).write("123 ") next
I monitor the memory from task manager. I can understand that memory level drops when I instantiate the streamwriters. However, I cannot understand, during the streamwriter writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the writing... but the memory is not released. is it waiting for GC?
Anyone knows how I can free the memory so I don't run out of memory half-way thru writing the files?
Actually, calling .Dispose() will release any resources the object is
holding, but will not cause the GC to clean up immediately.
To clean up after these, just make sure you call .dispose() as soon as you
can, and do not hold references to them. the garbage collector will
automatically reclaim the memory when the "pressure" is high enough (the
system is running low). You can also force a collection by calling
GC.Collect()
"Jarod_24" <ja******@hotmail.com> wrote in message
news:64******************************@news.teranew s.com... As far as i know, .Close() isn't the same as calling the Garbage
Collection. if you set the Variable to nothing the memory will release the next time around the GC runs If you call the .Dispose() method, then GC will immediatly clean up and release memory. (i don't remember is StramWriter implements iDispose)
Read about Dispose and Nothing in the MSDN documentation.
"Jon" <an*******@discussions.microsoft.com> wrote in message news:05****************************@phx.gbl... I'm puzzled.. let's say I have an array of streamwriters. a lot..
'the code is something like dim sw() as streamwriter redim sw(10000)
'instantiate for i as int16 = 0 to 9999 sw(i) = new streamwriter(arrayOfFileName(i)) next 'write to the files for i as int16 = 0 to 9999 sw(i).write("123 ") next
I monitor the memory from task manager. I can understand that memory level drops when I instantiate the streamwriters. However, I cannot understand, during the streamwriter writing to the files, the memory drops with each write.
I tried closing all the streamwriters after the writing... but the memory is not released. is it waiting for GC?
Anyone knows how I can free the memory so I don't run out of memory half-way thru writing the files?
If you have trouble with the memory used you need to limit the number or classes that you instance, because each class use some memory and resources from the machine.
I think that you can implement something like a queue, were all the info from the files get in a temporal buffer (0nly 1 queue with all the pending info), and later you write the info in the files, 10 at time, or something like that. I guest that it's a better approach that have 1000 Streams Writers opened all the time because you don't write all the time to the Streams Writers.
--
Bela Istok
MVP C#
Caracas, Venezuela
<an*******@discussions.microsoft.com> wrote in message news:09****************************@phx.gbl...
hi Bela,
everytime some data comes in, I want to write(and append)
these data to the many files. Also, I don't want to close
these files. I want to append the data. Finally when the
data stops coming in, I can close these files, and will
get the final files.
if I write to these files one by one, each time the data
comes in,
sw.open
sw.write
sw.close,
it will take forever. -----Original Message----- Why you need a lot of StreamWriters, it's a waste of
memory, in the exampleyou show us, you only write one file at time, why not
use only 1 streamwriter?
-- Bela Istok MVP C# Caracas, Venezuela This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Tom L |
last post by:
Like the subject says, how do I figure out how much memory an object takes..
If I create an employees collection, which is a collection of employee
objects, and I load up a handful of records, I...
|
by: Bob Rock |
last post by:
Hello,
I've noticed that after calling the Close method on a StreamWriter, I get
exceptions on any operation I might request on the associated stream (with a
message "Cannot access a closed...
|
by: Rob Corwin |
last post by:
Hi,
a c# app of mine that parses 30,000 xml files writes large amounts of
data to file (> 2GB) using a streamwriter object (sw). everything works
fine except that the memory used by the app grows...
|
by: Rob Corwin |
last post by:
Hi,
a c# app of mine that parses 30,000 xml files writes large
amounts of data to flat file (> 2GB) using a streamwriter
object (sw). everything works fine except that the memory
used by the app...
|
by: LordHog |
last post by:
Hello,
I recently wrote an application that is used for testing units in a
burn-in chamber. It uses two external library that require the use of
P\Invoke in order to work with them. There is a...
|
by: Jon |
last post by:
I'm puzzled..
let's say I have an array of streamwriters. a lot..
'the code is something like
dim sw() as streamwriter
redim sw(10000)
'instantiate
for i as int16 = 0 to 9999
sw(i) = new...
|
by: iwdu15 |
last post by:
hi...just a quick question. what are the differences in using a FileStream
and StreamWriter opposed to just a StreamWriter.....for instance
Dim fs as New FileStream("C:\Test.txt",...)
Dim sw As...
|
by: Merk |
last post by:
In a 2.0 Windows Forms app... in a static class I have a method named
WriteToLocalLog() that writes to a text file on the local machine.
I declare a StreamWriter at the class level (not inside...
|
by: Tony |
last post by:
Hi expert,
I installed DB2 v8.2 server on Solaris 9 box. When I connect to DB2
using control centre or other applications(except command line),
around 12 db2sysc processes pop up and each one...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: ryjfgjl |
last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
| |