![]() |
Telelogic DOORS (steve huntington) | ![]() |
new topic :
profile :
search :
help :
dashboard :
calendar :
home
|
||
Latest News:
|
|
Topic Title: memoryIsLow() Topic Summary: Created On: 13-Nov-2007 18:08 Status: Post and Reply |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() |
|
Anyone have any luck with the 'memoryIsLow()' perm?
I figured I'd use to to periodically close invisible modules. But I managed to open around 300 modules and notice memory maxed out and response time reduce to a crawl, yet 'memoryIsLow()' didn't return true making it apparently useless. Anyone have any idea about querying memory utilization? - Louie |
|
![]() |
|
![]() |
|
Louie:
This is my first time hearing of this function. It this a hidden one? ------------------------- pete.kowalski(at)motorola.com |
|
![]() |
|
![]() |
|
Its 'undocumented' which means its yes in doors.exe but not in the DXL manual.
|
|
![]() |
|
![]() |
|
Thanks Louie. I'm well aware of the "undocumented" features because I use them all the time once I figure out how to use them. I don't recall ever coming across "memoryIsLow" though.
Over the years, I have implemented what I call my poor-man memory refresher function. I use it all the time in DXL scripts that are cron. What it does is saves the current location of where the script is, shut downs DOORS client completely and restarts it to continue where the script left off. This prevents most of the infamous memory leaks that we all came to "love" and makes the overall execution faster. I am interested in the "memoryIsLow" function so I will take a look at it to see if I can figure it out. ------------------------- pete.kowalski(at)motorola.com |
|
![]() |
|
![]() |
|
bool memoryIsLow()
That's all I know. If you send the 'doors.exe' to Notepad.exe, you can see these perms. I'd make the original doors.exe Read only, then copy it to perhaps 'doors-exe_ReadMe.txt' and notepad that. Its pretty big, so I've tended to cut out the huge parts that are clearly code and don't contain ascii text. Try this. Edit the file and search for 'module('. You should see: [1] Module module(LinK). That means there is a perm 'module' that takes a parameter of type Link, and returns a variable of type Module. That's in the DXL manual and returns the Link Module handle associated with a Link. Search for the next 'module(': [2] Module module(Object). In the manual, return the Module that houses the Object. [3] Module module(LinkRef). Not in the manual, but returns the Link Module handle of a link ref. GREAT!!! Now we can deduce the link module of an incoming link without first loading the source module. for lRef in obj <-"*" do{ mLM = module(lRef); if this is the right kind of link module then load the source module and take a look at the links). - Louie |
|
![]() |
|
![]() |
|
It's a new function to me too, we currently use a call to some external PERL to monitor memory size.
------------------------- Graham Stradling, Alcatel-Lucent. |
|
![]() |
Telelogic DOORS
» DXL Exchange
»
memoryIsLow()
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.