Using Build 2549_3903
I keep getting memory leaks. I require myself to set the DotNet services variables in XBasic to null_value() once they are done. Not doing this seems to result in a very slow memory leak. This is fine for short processes.
However, i'm screwed with using long processes via alpha. I can only assume this will be fine once its across to IIS.
I currently have one process that is triggered on_click on dialog's button.
This performs an ajax call back. And i have placed the process into a single thread to monitor it in the .NET assembly, This enables me to continue navigating the site without and hinderance to performance as it will run on another core... that is until it starts hogging memory and eventually crashes the WAS at about 1.5GB!!!
This is after about 936 of the 1440 pdf files are done (which took about 12-15 minutes all up)... soo close.
The assembly itself is fine. I've created a console application to run the process in and it never goes over 150MB of memory usage when running the same process,
it averages at about 100MB or mem usage the entire time as it bounces between 50MB of mem usage and 100MB of mem usage
i can literally watch it pick up a PDF in the directory, process 4 Jpegs of it - resulting in a spike of about 100MB mem usage - then release all that memory and move onto the next file in the list.
While i watch mem usage for the WAS... i can see the same 100MB spike, yet it seems to not release about 1-2 meg per file processed, resulting in leak i can watch happening before my eyes in slow motion.
the XBasic function
As demonstrated by the console application, the garbage collection is running efficiently (i've been specific when to release memory - i've literally hand coded each object's disposal just to be sure, but uneccessarily so)
But why is this not the case when I run the same assembly from Alpha?
Is there anything i can do?
I keep getting memory leaks. I require myself to set the DotNet services variables in XBasic to null_value() once they are done. Not doing this seems to result in a very slow memory leak. This is fine for short processes.
However, i'm screwed with using long processes via alpha. I can only assume this will be fine once its across to IIS.
I currently have one process that is triggered on_click on dialog's button.
This performs an ajax call back. And i have placed the process into a single thread to monitor it in the .NET assembly, This enables me to continue navigating the site without and hinderance to performance as it will run on another core... that is until it starts hogging memory and eventually crashes the WAS at about 1.5GB!!!
This is after about 936 of the 1440 pdf files are done (which took about 12-15 minutes all up)... soo close.
The assembly itself is fine. I've created a console application to run the process in and it never goes over 150MB of memory usage when running the same process,
it averages at about 100MB or mem usage the entire time as it bounces between 50MB of mem usage and 100MB of mem usage
i can literally watch it pick up a PDF in the directory, process 4 Jpegs of it - resulting in a spike of about 100MB mem usage - then release all that memory and move onto the next file in the list.
While i watch mem usage for the WAS... i can see the same 100MB spike, yet it seems to not release about 1-2 meg per file processed, resulting in leak i can watch happening before my eyes in slow motion.
the XBasic function
Code:
function processTask as c (e as p) dim sv as DotNet::Services dim Alpha5Net4 as DotNet::AssemblyReference Alpha5Net4.FileName = "C:\Users\Administrator\Documents\Visual Studio 2010\Projects\IconLib2\IconLib2\bin\Release\IconLib2.dll" sv.RegisterClass("IconLib2","ProcessWebsiteXMLImages","IconLib2.ProcessWebsiteXMLImages",Alpha5Net4) dim ProcessWebsiteXMLImages as IconLib2::ProcessWebsiteXMLImages if e.dataSubmitted.radTasks = "1" then ProcessWebsiteXMLImages.processNow(e.dataSubmitted.txtIssueNo) ProcessWebsiteXMLImages = null_value() else ?"Task not available at this time" end if Alpha5Net4 = null_value() sv = null_value() dasa = "Finished" end function
But why is this not the case when I run the same assembly from Alpha?
Is there anything i can do?
Comment