Opened 9 years ago

Closed 9 years ago

#965 closed defect (fixed)

High memory & CPU usage

Reported by: Sewi Owned by:
Priority: blocker Milestone:
Component: editor Version: trunk
Keywords: Cc:


A Padre r11871 with 7 small open files (< 1000 lines each) started 3 days ago (with about 50% system suspend time since then) is using 2 GB virtual memory and 526 MB real memory. He used 1679 minutes CPU time, 5-second-cpu-time-usage is at 37% (of the run time), those 526 MB are 45% of my systems physical memory.

pstree shows a main task with 3 child threads.
strace shows:

  • main task seems to be in Wx main loop
  • thread 1 waiting at a futex-call (looks like sleeping)
  • thread 2 waiting at a futex-call (looks like sleeping)
  • thread 3 is issuing masses of stat-calls in directories not related to the open files

Padre is slow on scrolling, sometimes visual refresh is slower than typing. When doing nothing for a few minutes and then pressing right-arrow to go to the next char takes about a second for processing, the next ones feel nearly like realtime.
Each save-command is followed by a few seconds sleep.

Other running copies went into app-freeze for up to some minutes on every save, but these were earlier revisions, so this might be fixed.

Ubuntu 10.04

I assume that every tab-change issues a complete rescan of my home dir.

I don't have exact figures on memory usage, but I used to run 3-5 Padre tasks for days (sometimes weeks) in parallel before the new Task system.

Change History (4)

comment:1 Changed 9 years ago by Sewi

  • Priority changed from major to blocker

comment:2 Changed 9 years ago by Sewi

  • Summary changed from High memory usage to High memory & CPU usage

comment:3 Changed 9 years ago by Sewi

I added a thread id debug print to Padre/Wx/Directory/Task?.pm and it seems like the run method is launched once on every tab change or save in thread id #2 or #3.

comment:4 Changed 9 years ago by Sewi

  • Resolution set to fixed
  • Status changed from new to closed

Seems to be fixed by some recent commit.

Note: See TracTickets for help on using tickets.