Closed Bug 10850 Opened 25 years ago Closed 25 years ago

Massive footprint of viewer/apprunner

Categories

(Core :: XPCOM, defect, P3)

Sun
Solaris
defect

Tracking

()

VERIFIED DUPLICATE of bug 11062

People

(Reporter: tor, Assigned: warrensomebody)

Details

viewer and apprunner currently have a massive startup footprint on
unix platforms, 156Mb and 167Mb respectively.  It turns out that most
of this is a 128Mb mmap of /dev/zero by the nsPageMgr.
xpcom/ds/nsPageMgr.cpp line 323 maps a region of size
(size<<NS_PAGEMGR_PAGE_BITS), which turns out to be (32767<<12).
What is this chunk of memory used for, and does it need to be this
big?

  [1] _mmap(0x0, 0x7fff000, 0x3, 0x2, 0x9, 0x0), at 0xfe29408c
=>[2] nsPageMgr::InitPages(this = 0x161438, minPages = 32U, maxPages = 32767U),
line 323 in "nsPageMgr.cpp"
  [3] nsPageMgr::Init(this = 0x161438, minPages = 32U, maxPages = 32767U), line
422 in "nsPageMgr.cpp"
  [4] nsPageMgr::Create(aOuter = (nil), aIID = STRUCT, aResult = 0xffbee200),
line 467 in "nsPageMgr.cpp"
  [5] nsGenericFactory::CreateInstance(this = 0x89fe8, aOuter = (nil), aIID =
STRUCT, aResult = 0xffbee200), line 53 in "nsGenericFactory.cpp"
  [6] nsComponentManagerImpl::CreateInstance(this = 0x88700, aClass = STRUCT,
aDelegate = (nil), aIID = STRUCT, aResult = 0xffbee200), line 1277 in
"nsComponentManager.cpp"
  [7] nsComponentManager::CreateInstance(aClass = STRUCT, aDelegate = (nil),
aIID = STRUCT, aResult = 0xffbee200), line 67 in "nsRepository.cpp"
  [8] nsServiceManagerImpl::GetService(this = 0x848e8, aClass = STRUCT, aIID =
STRUCT, result = 0xffbee38c, shutdownListener = (nil)), line 243 in
"nsServiceManager.cpp"
  [9] nsServiceManager::GetService(aClass = STRUCT, aIID = STRUCT, result =
0xffbee38c, shutdownListener = (nil)), line 445 in "nsServiceManager.cpp"
  [10] nsService::nsService(this = 0xffbee37c, aClass = STRUCT, aIID = STRUCT,
rv = 0xffbee390), line 290 in "nsIServiceManager.h"
  [11] NS_NewPageBuffer(result = 0xffbee3fc, growBySize = 4096U, maxSize =
1048576U, observer = 0x161338), line 707 in "nsBuffer.cpp"
  [12] NS_NewPipe(inStrResult = 0x161370, outStrResult = 0x161374, growBySize =
4096U, maxSize = 1048576U, blocking = 1, observer = 0x161338), line 585 in
"nsPipe.cpp"
  [13] nsFileChannel::AsyncRead(this = 0x161330, startPosition = 0, readCount =
-1, ctxt = (nil), listener = 0x160bf8), line 534 in "nsFileChannel.cpp"
  [14] ImageNetContextImpl::GetURL(this = 0x15a658, aURL = 0x15de80, aLoadMethod
= NET_NORMAL_RELOAD, aReader = 0x15df70), line 596 in
"nsImageNetContextAsync.cpp"
  [15] IL_GetImage(image_url = 0xffbee828 "resource:/res/throbber/anims00.gif",
img_cx = 0x1608c8, obs_list = 0x15de38, background_color = 0xffbee71c, req_width
= 30U, req_height = 30U, flags = 0, opaque_cx = 0x15a590), line 2045 in "if.cpp"
  [16] ImageRequestImpl::Init(this = 0x15d510, aGroupContext = 0x1608c8, aUrl =
0xffbee828 "resource:/res/throbber/anims00.gif", aObserver = 0x15e834,
aBackgroundColor = 0xffbee814, aWidth = 30U, aHeight = 30U, aFlags = 0,
aNetContext = 0x15a590), line 240 in "nsImageRequest.cpp"
  [17] ImageGroupImpl::GetImage(this = 0x160898, aUrl = 0xffbee828
"resource:/res/throbber/anims00.gif", aObserver = 0x15e834, aBackgroundColor =
0xffbee814, aWidth = 30U, aHeight = 30U, aFlags = 0), line 271 in
"nsImageGroup.cpp"
  [18] nsThrobber::LoadThrobberImages(this = 0x15e830, aFileNameMask = CLASS,
aNumImages = 29), line 465 in "nsThrobber.cpp"
  [19] nsThrobber::Init(this = 0x15e830, aParent = 0x131c48, aBounds = STRUCT,
aFileNameMask = CLASS, aNumImages = 29), line 343 in "nsThrobber.cpp"
  [20] nsBrowserWindow::CreateToolBar(this = 0x131b10, aWidth = 620), line 1384
in "nsBrowserWindow.cpp"
  [21] nsBrowserWindow::Init(this = 0x131b10, aAppShell = 0x8b220, aPrefs =
0xa0b30, aBounds = STRUCT, aChromeMask = 4294967295U, aAllowPlugins = 1), line
1172 in "nsBrowserWindow.cpp"
  [22] nsViewerApp::OpenWindow(this = 0x881c0), line 599 in "nsViewerApp.cpp"
  [23] nsNativeViewerApp::Run(this = 0x881c0), line 41 in "nsGTKMain.cpp"
  [24] main(argc = 2, argv = 0xffbef64c), line 89 in "nsGTKMain.cpp"
Status: NEW → ASSIGNED
Mine.
This buffer size was bumped up because we were experiencing another bug when we
ran out of buffer space. I'm still working on what the best size and heuristics
for grabbing this memory are.
Target Milestone: M9
I reduced this, but bug 11062 remains to address additional problems.

*** This bug has been marked as a duplicate of 11062 ***
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
verified dup
You need to log in before you can comment on or make changes to this bug.