|
My king-sized toolbox is almost full, and so is my disk.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
If you want a colour image, I think you'll struggle - A 150x150 pixel jpeg photo saved at 1% quality, you get a file that's just a little bit bigger than 1kb. When you view it it's just a random selection of blotches that vaguely resemble the photo, if you stand a few feet away and squint, but its not recognisable as the original image.
For black and white, you can get a black and white dithered 80x80 pixel image as a png saved to less than 1kb. Again, you really can't see any detail, and it's only recognisable if you squint.
It all really depends on what you actually need to do. You might be better off keeping your images in a database, and just storing the db key on your card.
|
|
|
|
|
Save the image as a 40x40 jpeg.
|
|
|
|
|
Hi
i have number of window services running on production server(Window server 2003 dedicated for window services).Everything was running fine from last 6 months but now some services start giving error System.OutOfMemoryException.
I think this issue is due to memory leaks.Now my questions are
(1)For immediate solution restarting of window services is enough or i have to restart the Production server.
(2)How to find the possible cause of memory leak and suggestion for possible causes of memory leak
himanshu
|
|
|
|
|
Hi,
there are many possible causes. Here is one most people aren't aware of:
objects larger than 80KB get allocated on the "large-object-heap", which never gets compacted. The net result is it may fragment after some time, resulting in lots of memory being free yet the heap being unable to offer a chunk of memory large enough to satisfy the latest request.
Here are some candidates for large objects:
- images
- arrays in general
- large strings (TextBox/RichTextBox often is a culprit, as it requires the concatenation of all its text)
- StringBuillders and all kinds of collections since these typically are implemented as arrays as well; such objects get an initial capacity, and when insufficient, their array gets reallocated with twice the size.
Solution: there isn't a perfect solution. Some suggestions:
- avoid large objects as much as possible, don't use (Rich)TextBox for texts exceeding a few hundred lines
- when a StringBuilder or collection will grow large, allocate it with sufficient size right away.
- periodically restart your app (once a month, once a day, depending on how active its object allocation is)
BTW: I know of no readymade way to measure fragmentation; it is easy to measure it in a disruptive way though (I think I'll write a little article on that subject).
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
modified on Tuesday, July 14, 2009 7:19 AM
|
|
|
|
|
Thanks Luc for sharing your knowledgw with us.
Luc Pattyn wrote: Here are some candidates for large objects:
- images
- arrays in general
- large strings (TextBox/RichTextBox often is a culprit, as it requires the concatenation of all its text)
- StringBuillders and all kinds of collections since these typically are implemented as arrays as well; such objects get an initial capacity, and when insufficient, their array gets reallocated with twice the size.
But possibility of above scenarios are not there in case of my window service. In my case , i am calling a web service which puts the message in the IBM MQ.Exception comes whenever i attemp to call the web service method.
(1)One possible cause for exception might be that the message size is very big ... waiting for your views on that
(2)Also, is it possible to monitor the memory used be window service(something with performance counter or some other way) ???
(3)For immediate solution should i restart my production server or restarting of window service do the trick...
himanshu
|
|
|
|
|
Hi,
(1) I have no idea what the size of those messages would be. 80KB seems rather big for a message?
(2) fragmentation, the topic of my reply, is not caused by the amount of memory currently in use, it is caused by how the number and sizes of memory blocks evolve over time; and AFAIK Microsoft offers nothing to measure it. I know of an easy way to test it, but that test includes actions that fill the memory, i.e. allocate more until it fails. That probably is not what you want in an app, as it only makes sense if you can halt all threads but one, then fill the memory, then clean up again. The net result is you can prove there is fragmentation and how bad the situation is, it does not remedy anything.
(3) Restarting the process that throws the OOM would technically be a solution, no matter what the exact cause of the OOM is; whether it is functionally acceptable is up to you.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Thanks Luc for you reply
Luc Pattyn wrote: 80KB seems rather big for a message
I also think so.
Luc Pattyn wrote: fragmentation, the topic of my reply, is not caused by the amount of memory currently in use, it is caused by how the number and sizes of memory blocks evolve over time
In that case if window service is idle for some time then why not garbage collector comes in picture and free the allocated memory
himanshu
|
|
|
|
|
I see you haven't really understood my point yet: the large-object-heap does not get compacted, i.e. when there are empty holes in the one huge memory block it manages, then the occupied blocks are NOT shifted to create one big empty hole; moving large blocks was considered too expensive. The net result is, you could have 2GB of memory filled with a pattern like this:
80KB in use
90MB free
80KB in use
90MB free
80KB in use
...
80KB in use
90MB free
80KB in use
90MB free
which means less than one percent is in use, and still you can't allocate a single 100MB block.
That is what fragmentation is about; and that is why "memory usage" numbers don't tell you whether the situation exists or not.
Luc Pattyn [Forum Guidelines] [My Articles]
The quality and detail of your question reflects on the effectiveness of the help you are likely to get.
Show formatted code inside PRE tags, and give clear symptoms when describing a problem.
|
|
|
|
|
Your Service should be logging what method throws the Exception. You should be able to add more log messages like "I'm about to get a list of employees", etc. See if it's always the same action causing the problem (it may not be).
I write a lot of Windows Services, I don't keep a lot of data in the fields, mainly just database connections. Everything else is local to the methods in use so it gets garbage collected.
Review what data you keep in fields and rethink whether or not it needs to be.
|
|
|
|
|
Thanks buddy.....
Please look at my reply to Luc for futher clsssification of my problem.
himanshu
|
|
|
|
|
Hi,
I am placing horizontal scroll bar on the Panel and how to change the panel direction(left or right) according to the scrolling position?
Any sample code?
Thanks,
Palanivel
|
|
|
|
|
I think there is a possibility that you have misunderstood the purpose of a scrollbar. It is intended to move the content of a control, not the control itself.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Thanks for your reply Henry..
Exactly I want to move the contents of the Panel according to the horizontal scroll bar.
Any sample code..
|
|
|
|
|
If your need to scroll the content of the panel is because they extend beyond its boundaries, setting the AutoScroll property to true will enable its built in Scrollbars. Look up the AutoScroll , AutoScrollMargin and AutoScrollMinSize properties on MSDN for examples.
If there is another reason, it might help if you describe what it is that you are trying to do in more detail.
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
In my windows application in C# i m getting error message as
-----
Debug Assertion Failed!
Program: C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO 2008\WindowsApplication1\WindowsApplication1.EXE
File: cmdtarg.cpp
Line: 52
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
----
Can any one suggest me some method to remove this error
|
|
|
|
|
|
gauravems wrote: i m getting error message as
there is a diference between error and assertion[^].
gauravems wrote: Can any one suggest me some method to remove this error
maybe Check your call-stack at the assert (debug window), that might give a clue to where the objects reference count goes wrong
Manas Bhardwaj
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
Gud day everyone,
I want to upload files to an HTTPS site... the said site will ask a user name and a password upon opening the page. It will also ask another username & password when uploading the file...
problems:
1. my pc is behind a proxy server.
2. I did not find any solutions or sample codes to connect and upload into an HTTPS site. None of those samples I tried did not work or probably i just don't know how to use it.
3. I don't really understand the difference between HTTP and HTTPS except the latter will ask a username & a password.
4. I don't have a test HTTPS site because i don't know how to create one...
One time i encountered an error "System.Net.WebException The underlying connection was closed. Could not establish trust relationship with remote server."
Can i force the server to accept my certificate??? or do you have any solutions of my problems by all means.....
Hoping somebody can give thier brilliant solutions regarding this matter....
Thank you in advance....
xxx
modified on Tuesday, July 14, 2009 5:40 AM
|
|
|
|
|
The_Collector wrote: my pc is behind a proxy server.
How does that matter
The_Collector wrote: I did not find any solutions or sample codes to connect and upload into an HTTPS site. None of those samples I tried did not work or probably i just don't know how to use it.
The program does not change for a http or https site.
The_Collector wrote: I don't really understand the difference between HTTP and HTTPS except the latter will ask a username & a password
That not true. Https has nothing to with the authentication(i.e. asking for username and password)
Good explanation here[^]
The_Collector wrote: I don't have a test HTTPS site because i don't know how to create one...
You can create one like this[^]
Manas Bhardwaj
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
regarding the making of a test server, i had read that link you provid but its totally deffrfent from what is n actual.... we have a windows server 2000 as our test server....
do u have a sample code as my basis???? i rerally need it badly...
thanks
xxx
|
|
|
|
|
HI,
to explain more... a popup window will appear like "http://www.zoneedit.com/auth/"
i'll be task to develop a program which will upload a file automatically on a given time without human intervention... I have d user & password but i dont know how to do it.... I made a lot of efforts but none is working...
below is my coding i used..
private void btnUpload_Click(object sender, EventArgs e)
{
try
{
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
string uploadData = "user=" + TxtUser.Text + "&password=" + TxtPassword.Text; ;
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] uploadByte = encoding.GetBytes(uploadData);
// Create the HttpWebRequest and set its properties
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(TxtSite.Text);
request.ContentLength = uploadData.Length;
request.ContentType = "application/x-www-form-urlencoded";
request.Method = "POST";
request.Timeout = 20000;
// Get a Stream from the HttpWebRequest and write login info to it
Stream uploadStream = request.GetRequestStream();
uploadStream.Write(uploadByte, 0, uploadByte.Length);
WebClient Client = new WebClient();
Client.UploadFile(TxtSite.Text, TxtFile.Text);
}
catch (Exception expx)
{
MessageBox.Show(expx.Message);
}
}
tnx in advance
xxx
|
|
|
|
|
Hi,
How would you make a video from a series of still images??
Any idea??
modified on Tuesday, July 14, 2009 5:44 AM
|
|
|
|
|
This thread [^]might help you.
Manas Bhardwaj
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
Hi,
I want to generate 0's and 1's in the sequence like "0,1,0,1,0,1,0,1"....
I Used,
int returnValue = RandomNumber(0, 2); generates random numbers excluding the max .
But still i am getting all ones like (1,1,1,1,1,1,1,1). How to get 0's and 1's alternatively...
|
|
|
|