Closed Bug 1389761 Opened 9 years ago Closed 8 years ago

Memory limitation/internal handling makes FF slow over time

Categories

(Firefox :: Untriaged, defect, P3)

54 Branch
defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: bikerunner74, Unassigned, NeedInfo)

Details

(Keywords: perf)

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0 Build ID: 20170628075643 Steps to reproduce: Keep firefox open for some hours and maybe days. I do not restart FF because of open tabs and site logins. And I expect FF works for 1 hour and maybe 3 days (over weekend). I use the same sites as before. But the handling seems to get worse from release to release. Actual results: The firefox is getting slow over time. This happens if the FF process reaches around 1GB process size. (Note: This happened already in single process mode and still happens in multi process mode) Actions trigger the slowdown: - try to select text - open new tabs - click links The FF process (or internal causing mechanism) seems to use one thread only. The FF process cause a load off 100% at one core. The action is processed after different time. This looks like some internal memory handling (GC; like JVM full gc run) issue. The memory is limited and nothing can be removed from heap. Some sites with frequent javascript seems to create data on the heap which is not removed later. (Bad) workaround): Restart FF or the worker processes helps for a short time. But is happens again. Expected results: The memory handling should NOT limit the process performance. The full UI response stop is a bad behavior. FF should be responsive all time. It's annoying to have a computer with 32 GB of memory. 16 GM are free but FF does not use any of this memory. Each process seems to be limited to 1 GB. May it be possible to add a max memory setting which can be changed by the user (workaround)? Are these memory "timeouts" logged somewhere and reported automatically to the FF team? Or can the user submit this information? It's not a crash which cause a crash report. But sometimes I need to kill the FF process and the trace information may be lost.
May relate to 1370748
Keywords: perf
Please, you can make a performance profile with Gecko Profiler (https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler , https://perf-html.io/) to see what affects the performance of the browser and paste here the link to the profile.
Flags: needinfo?(bikerunner74)
I hope the correct information is part of the trace. Performance trace: https://perfht.ml/2xbQ4Jw The browser was very slow while selecting text on the page (delayed) and scrolling was slow this time. CPU load was 100% on one CPU core (4 core plus HT enabled). The used heap (two FF processes are running with multi process enabled) is (working set: 1.623.xxx kB; private set: 1.583.xxx kB) for the firefox.exe and (ws: 2.254.xxxkB; ps: 2.159.xxx kB) on "firefox.exe -contentproc ..." process. xxx part is changing frequently. about_support content: ---- Application Basics ------------------ Name: Firefox Version: 54.0.1 Build ID: 20170628075643 Update Channel: release User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0 OS: Windows_NT 10.0 Multiprocess Windows: 1/1 (Enabled by user) Google Key: Found Mozilla Location Service Key: Found Safe Mode: false Crash Reports for the Last 3 Days --------------------------------- All Crash Reports Extensions ---------- Name: Adblock Plus Version: 2.9.1 Enabled: true ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d} Name: Application Update Service Helper Version: 2.0 Enabled: true ID: aushelper@mozilla.org Name: Firefox Screenshots Version: 6.6.0 Enabled: true ID: screenshots@mozilla.org Name: Gecko Profiler Version: 2.1.0 Enabled: true ID: jid0-edalmuivkozlouyij0lpdx548bc@jetpack Name: Ghostery Version: 7.3.2.5 Enabled: true ID: firefox@ghostery.com Name: Multi-process staged rollout Version: 1.50 Enabled: true ID: e10srollout@mozilla.org Name: Pocket Version: 1.0.5 Enabled: true ID: firefox@getpocket.com Name: PrefBar Version: 7.1.0 Enabled: true ID: {8A6C82A1-F6C9-481a-AAE7-C96444C9A754} Name: TinyURL Generator Version: 2.6.1.1-signed.1-signed Enabled: true ID: tinyurl.addon@fast-chat.co.uk Name: uBlock Origin Version: 1.13.8 Enabled: true ID: uBlock0@raymondhill.net Name: Web Compat Version: 1.1 Enabled: true ID: webcompat@mozilla.org Name: Web Developer Version: 1.2.13 Enabled: true ID: {c45c406e-ab73-11d8-be73-000a95be3b12} Name: BetterPrivacy Version: 1.77 Enabled: false ID: {d40f5e7b-d2cf-4856-b441-cc613eeffbe3} Name: RESTClient Version: 2.0.5 Enabled: false ID: {ad0d925d-88f8-47f1-85ea-8463569e756e} Name: SOA Client Version: 0.2.1-signed.1-signed Enabled: false ID: soaclient@santoso Name: Stylish Version: 2.0.7 Enabled: false ID: {46551EC9-40F0-4e47-8E18-8E5CF550CFB8} Graphics -------- Features Compositing: Basic Asynchronous Pan/Zoom: wheel input enabled WebGL 1 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000939e) EGL_VERSION: 1.4 (ANGLE 2.1.0.2a250c8a0e15) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses WebGL 1 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 530 Direct3D11 vs_5_0 ps_5_0) WebGL 1 Driver Version: OpenGL ES 2.0 (ANGLE 2.1.0.2a250c8a0e15) WebGL 1 Driver Extensions: GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_frag_depth EXT_shader_texture_lod EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get OES_element_index_uint OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc MOZ_WEBGL_depth_texture WebGL 2 Driver WSI Info: EGL_VENDOR: Google Inc. (adapter LUID: 000000000000939e) EGL_VERSION: 1.4 (ANGLE 2.1.0.2a250c8a0e15) EGL_EXTENSIONS: EGL_EXT_create_context_robustness EGL_ANGLE_d3d_share_handle_client_buffer EGL_ANGLE_d3d_texture_client_buffer EGL_ANGLE_surface_d3d_texture_2d_share_handle EGL_ANGLE_query_surface_pointer EGL_ANGLE_window_fixed_size EGL_ANGLE_keyed_mutex EGL_ANGLE_surface_orientation EGL_ANGLE_direct_composition EGL_NV_post_sub_buffer EGL_KHR_create_context EGL_EXT_device_query EGL_KHR_image EGL_KHR_image_base EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_stream EGL_KHR_stream_consumer_gltexture EGL_NV_stream_consumer_gltexture_yuv EGL_ANGLE_flexible_surface_compatibility EGL_ANGLE_stream_producer_d3d_texture_nv12 EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_EXTENSIONS(nullptr): EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_platform_device EGL_ANGLE_platform_angle EGL_ANGLE_platform_angle_d3d EGL_ANGLE_device_creation EGL_ANGLE_device_creation_d3d11 EGL_ANGLE_experimental_present_path EGL_KHR_client_get_all_proc_addresses WebGL 2 Driver Renderer: Google Inc. -- ANGLE (Intel(R) HD Graphics 530 Direct3D11 vs_5_0 ps_5_0) WebGL 2 Driver Version: OpenGL ES 3.0 (ANGLE 2.1.0.2a250c8a0e15) WebGL 2 Driver Extensions: GL_ANGLE_depth_texture GL_ANGLE_framebuffer_blit GL_ANGLE_framebuffer_multisample GL_ANGLE_instanced_arrays GL_ANGLE_lossy_etc_decode GL_ANGLE_pack_reverse_row_order GL_ANGLE_robust_client_memory GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ANGLE_texture_usage GL_ANGLE_translated_shader_source GL_CHROMIUM_bind_generates_resource GL_CHROMIUM_bind_uniform_location GL_CHROMIUM_copy_compressed_texture GL_CHROMIUM_copy_texture GL_CHROMIUM_sync_query GL_EXT_blend_minmax GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_disjoint_timer_query GL_EXT_draw_buffers GL_EXT_frag_depth GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_read_format_bgra GL_EXT_robustness GL_EXT_sRGB GL_EXT_shader_texture_lod GL_EXT_texture_compression_dxt1 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_norm16 GL_EXT_texture_rg GL_EXT_texture_storage GL_EXT_unpack_subimage GL_KHR_debug GL_NV_EGL_stream_consumer_external GL_NV_fence GL_NV_pack_subimage GL_NV_pixel_buffer_object GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth32 GL_OES_element_index_uint GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object WebGL 2 Extensions: EXT_color_buffer_float EXT_texture_filter_anisotropic EXT_disjoint_timer_query MOZ_debug_get OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context MOZ_WEBGL_lose_context MOZ_WEBGL_compressed_texture_s3tc Audio Backend: wasapi Direct2D: true DirectWrite: true (10.0.10586.962) GPU #1 Active: Yes Description: Intel(R) HD Graphics 530 Vendor ID: 0x8086 Device ID: 0x1912 Driver Version: 20.19.15.4454 Driver Date: 5-4-2016 Drivers: igdumdim64 igd10iumd64 igd10iumd64 igd12umd64 igdumdim32 igd10iumd32 igd10iumd32 igd12umd32 Subsys ID: 121c1734 RAM: Unknown Diagnostics AzureCanvasAccelerated: 0 AzureCanvasBackend: skia AzureContentBackend: skia AzureFallbackCanvasBackend: cairo failures: [GFX1-]: GPU process disabled after 1 attempts Decision Log D3D9_COMPOSITING: disabled by default: Disabled by default GPU_PROCESS: failed by runtime: GPU process disabled after 1 attempts WEBRENDER: unavailable by runtime: Build doesn't include WebRender Failure Log (#0) Error: GPU process disabled after 1 attempts (#1) Error: Receive IPC close with reason=AbnormalShutdown (#2) Error: Receive IPC close with reason=AbnormalShutdown (#3) Error: Receive IPC close with reason=AbnormalShutdown (#4) Error: Receive IPC close with reason=AbnormalShutdown (#5) Error: Receive IPC close with reason=AbnormalShutdown (#6) Error: [D3D11] failed to get compositor device. (#7) Error: [D3D11] Failed to init compositor with reason: FEATURE_FAILURE_D3D11_NO_DEVICE (#8) Error: Compositors might be mixed (4,1) (#9) Error: [D3D11] failed to get compositor device. (#10) Error: [D3D11] Failed to init compositor with reason: FEATURE_FAILURE_D3D11_NO_DEVICE (#11) Error: [D3D11] failed to get compositor device. (#12) Error: [D3D11] Failed to init compositor with reason: FEATURE_FAILURE_D3D11_NO_DEVICE (#13) Error: [D3D11] failed to get compositor device. (#14) Error: [D3D11] Failed to init compositor with reason: FEATURE_FAILURE_D3D11_NO_DEVICE Important Modified Preferences ------------------------------ accessibility.typeaheadfind: true accessibility.typeaheadfind.flashBar: 0 browser.cache.disk.capacity: 358400 browser.cache.disk.filesystem_reported: 1 browser.cache.disk.hashstats_reported: 1 browser.cache.disk.smart_size.first_run: false browser.cache.disk.smart_size.use_old_max: false browser.cache.frecency_experiment: 2 browser.download.importedFromSqlite: true browser.places.smartBookmarksVersion: 8 browser.sessionstore.upgradeBackup.latestBuildID: 20170628075643 browser.startup.homepage: about:blank browser.startup.homepage_override.buildID: 20170628075643 browser.startup.homepage_override.mstone: 54.0.1 browser.tabs.closeWindowWithLastTab: false browser.tabs.remote.autostart.2: true browser.tabs.remote.force-enable: true browser.urlbar.daysBeforeHidingSuggestionsPrompt: 0 browser.urlbar.lastSuggestionsPromptDate: 20160905 browser.urlbar.maxRichResults: 12 browser.urlbar.trimURLs: false dom.apps.lastUpdate.buildID: 20160922113459 dom.apps.lastUpdate.mstone: 49.0.1 dom.apps.reset-permissions: true dom.mozApps.used: true dom.push.userAgentID: 8f1adef35bc4486f956137daf6d53055 extensions.lastAppVersion: 54.0.1 font.internaluseonly.changed: true gfx.crash-guard.d3d11layers.appVersion: 52.0.2 gfx.crash-guard.d3d11layers.deviceID: 0x1912 gfx.crash-guard.d3d11layers.driverVersion: 20.19.15.4454 gfx.crash-guard.d3d11layers.feature-d2d: true gfx.crash-guard.d3d11layers.feature-d3d11: true gfx.crash-guard.glcontext.gfx.driver-init.direct3d11-angle: true gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle: true gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-d3d11: false gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-warp: false gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-try-d3d11: true gfx.crash-guard.status.: 2 gfx.crash-guard.status.d3d11layers: 2 gfx.crash-guard.status.d3d11video: 2 gfx.crash-guard.status.d3d9video: 2 gfx.crash-guard.status.glcontext: 2 gfx.direct3d.last_used_feature_level_idx: 0 media.benchmark.vp9.fps: 233 media.benchmark.vp9.versioncheck: 2 media.gmp-eme-adobe.abi: x86_64-msvc-x64 media.gmp-eme-adobe.lastUpdate: 1466535955 media.gmp-eme-adobe.version: 17 media.gmp-gmpopenh264.abi: x86_64-msvc-x64 media.gmp-gmpopenh264.lastUpdate: 1471472751 media.gmp-gmpopenh264.version: 1.6 media.gmp-manager.buildID: 20170628075643 media.gmp-manager.lastCheck: 1502914349 media.gmp-widevinecdm.abi: x86_64-msvc-x64 media.gmp-widevinecdm.lastUpdate: 1475902084 media.gmp-widevinecdm.version: 1.4.8.903 media.gmp.storage.version.observed: 1 media.hardware-video-decoding.failed: false media.webrtc.debug.log_file: C:\Users\user\AppData\Local\Temp\WebRTC.log network.cookie.prefsMigrated: true network.dns.disablePrefetch: true network.http.speculative-parallel-limit: 0 network.predictor.cleaned-up: true network.prefetch-next: false places.database.lastMaintenance: 1503479941 places.history.expiration.transient_current_max_pages: 145060 plugin.disable_full_page_plugin_for_types: application/pdf plugin.importedState: true plugin.state.flash: 0 print.printer_\\jprintserver\P23SCOL.print_bgcolor: false print.printer_\\jprintserver\P23SCOL.print_bgimages: false print.printer_\\jprintserver\P23SCOL.print_duplex: -437918235 print.printer_\\jprintserver\P23SCOL.print_edge_bottom: 0 print.printer_\\jprintserver\P23SCOL.print_edge_left: 0 print.printer_\\jprintserver\P23SCOL.print_edge_right: 0 print.printer_\\jprintserver\P23SCOL.print_edge_top: 0 print.printer_\\jprintserver\P23SCOL.print_evenpages: true print.printer_\\jprintserver\P23SCOL.print_footercenter: print.printer_\\jprintserver\P23SCOL.print_footerleft: &PT print.printer_\\jprintserver\P23SCOL.print_footerright: &D print.printer_\\jprintserver\P23SCOL.print_headercenter: print.printer_\\jprintserver\P23SCOL.print_headerleft: &T print.printer_\\jprintserver\P23SCOL.print_headerright: &U print.printer_\\jprintserver\P23SCOL.print_in_color: true print.printer_\\jprintserver\P23SCOL.print_margin_bottom: 0.5 print.printer_\\jprintserver\P23SCOL.print_margin_left: 0.5 print.printer_\\jprintserver\P23SCOL.print_margin_right: 0.5 print.printer_\\jprintserver\P23SCOL.print_margin_top: 0.5 print.printer_\\jprintserver\P23SCOL.print_oddpages: true print.printer_\\jprintserver\P23SCOL.print_orientation: 0 print.printer_\\jprintserver\P23SCOL.print_page_delay: 50 print.printer_\\jprintserver\P23SCOL.print_paper_data: 9 print.printer_\\jprintserver\P23SCOL.print_paper_height: -1,00 print.printer_\\jprintserver\P23SCOL.print_paper_name: print.printer_\\jprintserver\P23SCOL.print_paper_size_unit: 1 print.printer_\\jprintserver\P23SCOL.print_paper_width: -1,00 print.printer_\\jprintserver\P23SCOL.print_resolution: 600 print.printer_\\jprintserver\P23SCOL.print_reversed: false print.printer_\\jprintserver\P23SCOL.print_scaling: 1,00 print.printer_\\jprintserver\P23SCOL.print_shrink_to_fit: true print.printer_\\jprintserver\P23SCOL.print_to_file: false print.printer_\\jprintserver\P23SCOL.print_unwriteable_margin_bottom: 0 print.printer_\\jprintserver\P23SCOL.print_unwriteable_margin_left: 0 print.printer_\\jprintserver\P23SCOL.print_unwriteable_margin_right: 0 print.printer_\\jprintserver\P23SCOL.print_unwriteable_margin_top: 0 privacy.donottrackheader.enabled: true privacy.sanitize.migrateFx3Prefs: true security.sandbox.content.tempDirSuffix: {76834612-5e2c-4847-9b44-c209ccc974dc} services.sync.declinedEngines: passwords services.sync.engine.passwords: false services.sync.engine.prefs.modified: false services.sync.lastPing: 1503407346 services.sync.lastSync: Wed Aug 23 2017 13:39:11 GMT+0200 (W. Europe Standard Time) services.sync.numClients: 5 storage.vacuum.last.index: 1 storage.vacuum.last.places.sqlite: 1502871792 ui.osk.debug.keyboardDisplayReason: IKPOS: Touch screen not found. Important Locked Preferences ---------------------------- Places Database --------------- JavaScript ---------- Incremental GC: true Accessibility ------------- Activated: false Prevent Accessibility: 0 Library Versions ---------------- NSPR Expected minimum version: 4.14 Version in use: 4.14 NSS Expected minimum version: 3.30.2 Version in use: 3.30.2 NSSSMIME Expected minimum version: 3.30.2 Version in use: 3.30.2 NSSSSL Expected minimum version: 3.30.2 Version in use: 3.30.2 NSSUTIL Expected minimum version: 3.30.2 Version in use: 3.30.2 Experimental Features --------------------- Sandbox ------- Content Process Sandbox Level: 1 ----
Flags: needinfo?(bikerunner74)
> Keep firefox open for some hours and maybe days. I do not restart FF because of open tabs and site logins. With session restore enabled, you don't need to worry about losing tabs on restart - they all come back. Even after crashes. > This looks like some internal memory handling (GC; like JVM full gc run) issue. The memory is limited and nothing can be removed from heap. Some sites with frequent javascript seems to create data on the heap which is not removed later. If Firefox is only using 1GB, GC issue seems unlikely. Does the same problem happen with Firefox started in safe mode?
Flags: needinfo?(bikerunner74)
(In reply to Wayne Mery (:wsmwk, NI for questions) from comment #5) > > Keep firefox open for some hours and maybe days. I do not restart FF because of open tabs and site logins. > > With session restore enabled, you don't need to worry about losing tabs on > restart - they all come back. Even after crashes. Is this your solution? This may be an ugly workaround. Chrome wins otherwise by usability. And I do not hope I have to switch because of necessary restarts. :/ > > This looks like some internal memory handling (GC; like JVM full gc run) issue. The memory is limited and nothing can be removed from heap. Some sites with frequent javascript seems to create data on the heap which is not removed later. > > If Firefox is only using 1GB, GC issue seems unlikely. FF limits itself. There is plenty of RAM available >10GB but FF does not use it. But the CPU is at 100 percent and FF does react after some seconds. Even page scrolling or select some text with mouse cause timeouts. > Does the same problem happen with Firefox started in safe mode? I can test this later. I have limited access to inet for the next two weeks.
Flags: needinfo?(bikerunner74)
@Mike, can you please take a look at the performance profile? It may help us in selecting the right component.
Flags: needinfo?(mconley)
The profile shows large pauses waiting for AdBlock Plus, which is sending synchronous IPC messages. I note that you already have uBlock enabled as well, so there's probably a load of content block redundancy here. If you disable AdBlock Plus and just use uBlock, do you notice the same behaviour?
Flags: needinfo?(mconley) → needinfo?(bikerunner74)
I'm keeping this in Untriaged until we know more, but based on the info we have this doesn't look like a blocker for 57. Making it a P3 for investigation. To the reporter: what version of Firefox are you using? The initial report says Firefox 54.
Priority: -- → P3
Marking this as Resolved - Incomplete due to the lack of response from the reporter. If anyone can still reproduce it on the latest versions, feel free to reopen the issue and provide more information.
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago
Resolution: --- → INCOMPLETE
Performance issue still happens in version 55.0.3. Memory usage of firefox processes goes up to 2.2 GB. One window with youtube plays without an issue and controls are usable. Another window is not usable. I can not click any tab, FF button/menu or any content in the current tab. The CPU usage is at 100 percent for this process (25 percent overall for a 4 core CPU). Profile is here: https://perfht.ml/2wDVTPt I'm still not sure if the profiler gathers the right data. Behavior is still: - CPU goes to 100 percent for a core - memory usage is increased and does not drop - browser window is unusable
Flags: needinfo?(bikerunner74)
Status: RESOLVED → UNCONFIRMED
Resolution: INCOMPLETE → ---
Mike, could you please take a look at the latest performance profile the reporter attached?
Flags: needinfo?(mconley)
There are two things in this profile that stand out to me: 1. The content process is hanging because it's using sync messages to get cookies from the parent (which is also blocked - see #2). This was fixed in bug 1331680 in Firefox 57, which rolls out to release in just under a month. 2. The parent process is blocked because a WebExtension is behaving very poorly. I can't, unfortunately, tell which add-on is causing the problem here - but if I had to guess, I'd say ABP. bikerunner74 - would you be able to try disabling ABP and replacing with uBlock Origin (https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) and seeing if that helps?
Flags: needinfo?(mconley)
I disabled ABP already on last request and replaced it with uBlock Origin. ABP did not run with this trace. I have 5 active addons: Ghostery PrefBar TinyURL Generator uBlock Origin Web Developer Disabled: ABP BetterPrivacy
Flags: needinfo?(bikerunner74)
And I missed the Gecko Profiler as active addon.
I see a whole lot of time spent in the main process in MessageManagerProxy::addListeners from resource://gre/modules/ExtensionUtils.jsm: 22887 Timer::Fire 18034 PBrowser::Msg_AsyncMessage 17991 TabParent::RecvAsyncMessage MessageChannel:Message 17814 js::RunScript 17810 receiveMessage 17720 bound 17719 _handleMessage 17622 js::RunScript 15782 MessageManagerProxy 15715 addListeners This is the code for addListeners in FF56: /** * @private * Iterates over all of the currently registered message listeners. */ * iterListeners() { for (let [message, listeners] of this.listeners) { for (let [listener, listenWhenClosed] of listeners) { yield {message, listener, listenWhenClosed}; } } } /** * @private * Adds docShell swap listeners to the message manager owner. * * @param {Element} target * The target element. */ addListeners(target) { target.addEventListener("SwapDocShells", this); for (let {message, listener, listenWhenClosed} of this.iterListeners()) { target.addMessageListener(message, listener, listenWhenClosed); } this.eventTarget = target; } The fact that both CPU and memory are reportedly suffering, doesn't this suggest that the this.listeners collection is maybe growing unduly large?
(In reply to rhill@raymondhill.net from comment #16) > The fact that both CPU and memory are reportedly suffering, doesn't this > suggest that the this.listeners collection is maybe growing unduly large? That's very plausible. Needinfo'ing kmag who might be able to illuminate this further.
Flags: needinfo?(kmaglione+bmo)
Nope. This is from the MessageManagerProxy constructor, which means that both of those maps are empty in that call.
Flags: needinfo?(kmaglione+bmo)
(In reply to bikerunner74 from comment #3) > I hope the correct information is part of the trace. > Performance trace: https://perfht.ml/2xbQ4Jw It looks like most of the slowness in this profile is sync messaging from AdBlock Plus and add-on shim CPOWs from the WebDeveloper and tinyurl extensions. In some parts there's also a bunch of WebRequest and extension messaging overhead that was fixed a long time ago, though. (In reply to bikerunner74 from comment #11) > Profile is here: https://perfht.ml/2wDVTPt It looks like most of the overhead here is in adding the SwapDocShells listener to <browser>s that we're waiting for responses on. That should be relatively cheap, so I'm surprised that it adds up to be the most expensive part of message processing, but either way, it suggests that some add-on is doing a *huge* amount of messaging during that period. We could at least alleviate that overhead by caching MessageManagerProxy instances for a particular browser, but I've never seen this show up in profiles before, so there never seemed to be a need. Anyway, it would be interesting to see if this is still an issue in newer Firefox versions.
(In reply to Kris Maglione [:kmag] (long backlog; ping on IRC if you're blocked) from comment #19) > it suggests that some add-on is doing a *huge* amount of messaging during that > period. The add-on in question appears to be Ghostery. And if you're seeing lots of memory growth, Ghostery is probably the culprit there, as well. It unfortunately tends to return `true` from its onMessage handlers (which means that it intends to send a response) and then never call its response callback. Or, at least, earlier versions did. Prior to bug 1389968, that would cause a leak until the context that promised the response was destroyed.
(In reply to Kris Maglione [:kmag] (long backlog; ping on IRC if you're blocked) from comment #19) > Anyway, it would be interesting to see if this is still an issue in newer Firefox versions. @bikerunner74, could you please download and install the latest Nightly build (https://nightly.mozilla.org) and see if the issue is still reproducible?
Flags: needinfo?(bikerunner74)
Marking this as Resolved - Incomplete due to the lack of response from the reporter. If anyone can still reproduce it on the latest versions, feel free to reopen the issue and provide more information.
Status: UNCONFIRMED → RESOLVED
Closed: 9 years ago → 8 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: