MailNews:Memory Bloat and Leak Tests: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Pre-defined profile: Add IMAP & NNTP to future profile requirements.)
(Replaced content with '<small><< Back to MailNews:Performance Testing</small> '''NOTE: This page (and its related talk page) has been moved to the [https://…')
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<small>[[MailNews:Performance Testing|<< Back to MailNews:Performance Testing]]</small>
<small>[[MailNews:Performance Testing|&lt;&lt; Back to MailNews:Performance Testing]]</small>  


__TOC__
'''NOTE: This page (and its related talk page) has been moved to the [https://developer.mozilla.org/en/MailNews/Leak_And_Bloat_Tests Mozilla Developer Center]. Please refer to that page for recent updates and discussions.'''
 
<div style="border: thin dotted #aaa; padding:5px;">
'''Please do not edit this page unless you are on the Thunderbird or SeaMonkey MailNews team. Your feedback and comments are welcomed on the [[MailNews_Talk:Memory_Bloat_and_Leak_Tests|discussion page]].'''</div><br>
 
''Note: MailNews here refers to either Thunderbird, or the Mail/Newsgroups/Address Book part of SeaMonkey''
 
== Aim ==
 
* To provide a continuous check within Mailnews and its sub-components for the following items:
*# Total memory leaks.
*# Total memory usage (aka bloat).
* Provide a consistent number from build to build where no source code has changed.
* Provide reasonable coverage for the normal activities that a user performs.
 
== Method ==
 
Initial Method:
 
* Measure Leaks and Bloats, in a similar way to Firefox (using XPCOM_MEM_LEAK_LOG and --trace-malloc).
* The method of testing memory bloat and leaks will be the same sequence of events, using the same set of test data.
*# Startup Main Mail Window
*# Open Address Book Window, close Address Book Window
*# Open Message Compose Window, close Message Compose Window
*# Close Main Mail Window
 
To be added at a later stage:
 
* Large Message folders and selection thereof.
* Large Address Books.
* Sending/Receiving on different protocols (this would run best with local servers being setting up i.e. same physical hardware).
 
== Results ==
 
Printed via standard tinderbox methods, these will consist of:
 
* Mail RLk
** Reference Count Leaks
* Mail Lk
** Total Bytes malloc'ed and not free'd
* Mail MH
** Maximum Heap size
* Mail A
** Allocations - number of calls to malloc and friends.
 
== Code Locations ==
 
The existing [http://mxr.mozilla.org/seamonkey/source/tools/tinderbox/ tinderbox code] will be used to drive the tests, this may require migrating to [[Buildbot]] at an appropriate stage.
 
The files specific to mailnews testing will be stored in:
 
/mozilla/testing/mailnews/bloat/
 
These files consist of:
 
* An overlay (bloatTestOverlay.xul) which is used to overlay the main windows and loads bloatTestOverlay.js
* An script (bloatTestOverlay.js) which is used to drive the actual tests.
 
== Pre-defined profile ==
 
Initial Setup:
 
* One POP3 account (Mails TBD)
* One Identity
* One SMTP server defined (not used)
 
Future requirements/possibilities:
 
* One Address Book where PAB has ~1000 entries
* Large Message folders
* IMAP
* NNTP Server and subscribed newsgroup.
 
08/04/2008: prefs.js created via TB with the above settings, the first section is for preferences included in tinderbox, the second section is ones which don't currently get set.
 
<pre>
user_pref("mail.account.account1.server", "server1");
user_pref("mail.account.account2.identities", "id1");
user_pref("mail.account.account2.server", "server2");
user_pref("mail.accountmanager.accounts", "account1,account2");
user_pref("mail.accountmanager.defaultaccount", "account2");
user_pref("mail.accountmanager.localfoldersserver", "server1");
user_pref("mail.identity.id1.fullName", "Tinderbox");
user_pref("mail.identity.id1.smtpServer", "smtp1");
user_pref("mail.identity.id1.useremail", "tinderbox@invalid.com");
user_pref("mail.identity.id1.valid", true);
user_pref("mail.root.none-rel", "[ProfD]Mail");
user_pref("mail.root.pop3-rel", "[ProfD]Mail");
user_pref("mail.server.server1.directory-rel", "[ProfD]Mail/Local Folders");
user_pref("mail.server.server1.hostname", "Local Folders");
user_pref("mail.server.server1.name", "Local Folders");
user_pref("mail.server.server1.type", "none");
user_pref("mail.server.server1.userName", "nobody");
user_pref("mail.server.server2.check_new_mail", false);
user_pref("mail.server.server2.directory-rel", "[ProfD]Mail/tinderbox");
user_pref("mail.server.server2.download_on_biff", true);
user_pref("mail.server.server2.hostname", "tinderbox");
user_pref("mail.server.server2.login_at_startup", false);
user_pref("mail.server.server2.name", "tinderbox@invalid.com");
user_pref("mail.server.server2.type", "pop3");
user_pref("mail.server.server2.userName", "tinderbox");
user_pref("mail.smtp.defaultserver", "smtp1");
user_pref("mail.smtpserver.smtp1.hostname", "tinderbox");
user_pref("mail.smtpserver.smtp1.username", "tinderbox");
user_pref("mail.smtpservers", "smtp1");
user_pref("mail.startup.enabledMailCheckOnce", true);
user_pref("mailnews.start_page_override.mstone", "1.9pre");
</pre>
 
Preferences in generated profile, but not set:
 
<pre>
user_pref("mail.root.none", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail");
user_pref("mail.root.pop3", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail");
user_pref("mail.server.server1.directory", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail/Local Folders");
user_pref("mail.server.server2.directory", "/home/moztest/.thunderbird/t7i1txfw.minimum/Mail/tinderbox");
user_pref("mail.attachment.store.version", 1);
user_pref("mail.folder.views.version", 1);
user_pref("mail.spam.version", 1);
user_pref("mailnews.quotingPrefs.version", 1);
user_pref("mailnews.ui.threadpane.version", 6);
</pre>

Latest revision as of 11:09, 14 January 2010

<< Back to MailNews:Performance Testing

NOTE: This page (and its related talk page) has been moved to the Mozilla Developer Center. Please refer to that page for recent updates and discussions.