RE: [Pywinauto-users] Resource leak in ListViewWrapper
Status: Alpha
Brought to you by:
mcmahon_m
From: Keller C. <chr...@oc...> - 2006-05-03 07:13:22
|
Hi Mark, Thanks for your fast answer. As you suggest, until you release an updated version, I will override Application.RecordMatch. Best regards Christophe --- Christophe Keller Chr...@oc... -----Original Message----- From: Mark Mc Mahon [mailto:mar...@gm...] Sent: Tuesday, May 02, 2006 6:32 PM To: Keller Christophe Cc: pyw...@li... Subject: Re: [Pywinauto-users] Resource leak in ListViewWrapper Hi Christophe, On 5/2/06, Keller Christophe <chr...@oc...> wrote: > Hi all, > > Today, using pywinauto 0.3.4, it appears the ListViewWrapper.ItemCount() and > ListViewWrapper.GetItem() leak _very_ fast handles and memory. To test this, > I simply created a small project in Visual Studio .Net with a form and a > ListView with five items, showing a detailed view, then wrote the script > below: > I am trying to research this. First of all it happens anytime that a control is resolved - nothing it seems to do with listview methods - you just see it more for more complicated controls because... I am storing all the information on a window once it matches! You can disable this completely (and it should be disabled completely for now by changing the Application.RecordMatch() implementation to return # just return immediately :-) This is part of the implementation to record information while running on English and then run on Localized software automatically afterwards. I have changed my local copy and when I get a breather from other stuff going on I will merge it up to SubVersion (I am currently working on a Branch). Note after this there will be a tiny leak still - but I haven't time to track that down at the moment. (and it may not be a full leak - just caching data not hit before) Thanks Mark > import pywinauto.findwindows > import pywinauto.application > import time > > > > if __name__ == "__main__": > app = pywinauto.application.Application() > app.connect_(title = 'Form1') > window = app.window_(title = 'Form1') > listView = window.ListView > while True: > #print listView.GetItem(0) > print listView.ItemCount() > time.sleep(2) > > Then using the taskmanager, I see that each iteration eats up 33 handles!!! > > I discovered this while automating an application with a hundred items in a > listview, and the results are not pretty :-) > > Is this a known bug? > > Best regards > > Christophe > > --- > Christophe Keller > Chr...@oc... > ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Pywinauto-users mailing list Pyw...@li... https://lists.sourceforge.net/lists/listinfo/pywinauto-users This message and attachment(s) are intended solely for the use of the addressee and may contain information that is privileged, confidential or otherwise exempt from disclosure under applicable law. If you are not the intended recipient or agent thereof responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately by telephone and with a "reply" message. Thank you for your cooperation. |