[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Memory leaks
From: |
Uday S Reddy |
Subject: |
Re: Memory leaks |
Date: |
Fri, 04 Mar 2011 11:39:05 +0000 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.14) Gecko/20110221 Thunderbird/3.1.8 |
On 3/3/2011 11:40 PM, Andreas Schwab wrote:
How do you know that there is some leak?
First there was a suspicion, and now I have been running experiments.
Here are the profiles returned by (garbage-collect), pretty-printed, for
the same Emacs session over time. In each case, the Emacs session was
essentially empty, with just a few stray text buffers . The difference
is only in what happened in between.
Initial:
(:conses (102590 . 13880)
:syms (20328 . 54)
:miscs (830 . 152)
:chars 570345 :vector 329747 :floats (72 . 111)
:intervals (348 . 189)
:strings (21259 . 5705))
After one visit to my INBOX folder (22MB) and quitting:
(:conses (663630 . 605600)
:syms (32257 . 2608)
:miscs (15443 . 18022)
:chars 1639236 :vector 454670 :floats (345 . 261)
:intervals (503 . 622)
:strings (99122 . 90256))
After a second visit to the same folder and quitting:
(:conses (1113362 . 334402)
:syms (32264 . 2807)
:miscs (15467 . 36265)
:chars 1833568 :vector 456351 :floats (345 . 328)
:intervals (604 . 849)
:strings (138140 . 122806))
After several hours of usage:
(:conses (1558351 . 313757)
:syms (93011 . 347)
:miscs (140492 . 28025)
:chars 9264181 :vector 2283330 :floats (347 . 638)
:intervals (2771 . 4880)
:strings (467731 . 34316))
At this point, the total memory occupied was about 400MB, and Emacs
complained that "memory was exhausted; save buffers and quit" (or
something to that effect). I ran garbage-collect, killed all the stray
buffers and left it around for a while (about 10-15 minutes), and the
memory came down to 340MB. (The memory usage figures are from the
Windows XP Task Manger - "VM Size" - VM here referring to the virtual
memory.)
After that, I could do a couple of more folder visits and then Emacs
crashed in the middle of a folder visit. Come to think of it, almost
all the Emacs crashes I have experienced over the last year or so were
probably related to the memory leak problem. They all happened when I
was visiting a folder.
Recalling from my memory, these kind of crashes have started happening
with Emacs 22.3. There were no such crashes before then. I stuck to
Emacs 22.2 for a long time, hoping that whatever was causing the crashes
would get fixed in due course. But with every new release, the same
kind of crashes appeared.
Here is a crash report from yesterday produced by DrMinGW.
Unfortunately, I was in the middle of a Lisp debugger session and the
crash happened while the debugger was trying print a large data
structure. But this does look like a memory problem to my untrained eye.
Cheers,
Uday
---------------
emacs.exe caused an Access Violation at location 77c47412 in module
msvcrt.dll Writing to location 18874000.
Registers:
eax=00829240 ebx=02bb2802 ecx=00000000 edx=00000001 esi=008292bf
edi=18874000
eip=77c47412 esp=00829290 ebp=00829298 iopl=0 nv up ei ng nz ac
pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000
efl=00000293
Call stack:
77C47412 msvcrt.dll:77C47412 memmove
0110AD0F emacs.exe:0110AD0F printchar print.c:323
0110FC03 emacs.exe:0110FC03 print_object print.c:1645
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0111148E emacs.exe:0111148E print_object print.c:2215
0111148E emacs.exe:0111148E print_object print.c:2215
011105A3 emacs.exe:011105A3 print_object print.c:1921
0110EAE2 emacs.exe:0110EAE2 print print.c:1305
0110CF92 emacs.exe:0110CF92 Fprin1 print.c:751
01022B04 emacs.exe:01022B04 Ffuncall eval.c:3034
01114C11 emacs.exe:01114C11 Fbyte_code bytecode.c:680
010232C3 emacs.exe:010232C3 funcall_lambda eval.c:3220
01022D03 emacs.exe:01022D03 Ffuncall eval.c:3077
01114C11 emacs.exe:01114C11 Fbyte_code bytecode.c:680
01021B46 emacs.exe:01021B46 Feval eval.c:2356
0101ED68 emacs.exe:0101ED68 Fprogn eval.c:415
01102A41 emacs.exe:01102A41 Fsave_window_excursion window.c:6575
0111579A emacs.exe:0111579A Fbyte_code bytecode.c:841
010232C3 emacs.exe:010232C3 funcall_lambda eval.c:3220
01022D03 emacs.exe:01022D03 Ffuncall eval.c:3077
010221D6 emacs.exe:010221D6 Fapply eval.c:2506
010225FD emacs.exe:010225FD apply1 eval.c:2780
0101EB72 emacs.exe:0101EB72 call_debugger eval.c:272
01022E12 emacs.exe:01022E12 Ffuncall eval.c:3102
01114C11 emacs.exe:01114C11 Fbyte_code bytecode.c:680
01021B46 emacs.exe:01021B46 Feval eval.c:2356
01020165 emacs.exe:01020165 internal_catch eval.c:1228
0111580E emacs.exe:0111580E Fbyte_code bytecode.c:855
010232C3 emacs.exe:010232C3 funcall_lambda eval.c:3220
01022D03 emacs.exe:01022D03 Ffuncall eval.c:3077
010221D6 emacs.exe:010221D6 Fapply eval.c:2506
010225FD emacs.exe:010225FD apply1 eval.c:2780
01117B84 emacs.exe:01117B84 Fcall_interactively callint.c:396
01022B2E emacs.exe:01022B2E Ffuncall eval.c:3037
010226CC emacs.exe:010226CC call3 eval.c:2857
01014D52 emacs.exe:01014D52 Fcommand_execute keyboard.c:10562
010150C3 emacs.exe:010150C3 Fexecute_extended_command keyboard.c:10675
01022AE3 emacs.exe:01022AE3 Ffuncall eval.c:3031
0111932A emacs.exe:0111932A Fcall_interactively callint.c:869
01022B2E emacs.exe:01022B2E Ffuncall eval.c:3037
010226CC emacs.exe:010226CC call3 eval.c:2857
01014D52 emacs.exe:01014D52 Fcommand_execute keyboard.c:10562
010076E0 emacs.exe:010076E0 command_loop_1 keyboard.c:1914
01020614 emacs.exe:01020614 internal_condition_case eval.c:1492
01005FE3 emacs.exe:01005FE3 command_loop_2 keyboard.c:1362
01020165 emacs.exe:01020165 internal_catch eval.c:1228
01005F9C emacs.exe:01005F9C command_loop keyboard.c:1342
0100588E emacs.exe:0100588E recursive_edit_1 keyboard.c:956
010059F7 emacs.exe:010059F7 Frecursive_edit keyboard.c:1019
010028F5 emacs.exe:010028F5 main emacs.c:1835
010010DB emacs.exe:010010DB
01001178 emacs.exe:01001178
010036D0 emacs.exe:010036D0 _start unexw32.c:131
7C817077 kernel32.dll:7C817077 RegisterWaitForInputIdle
- Memory leaks, Uday S Reddy, 2011/03/03
- Re: Memory leaks, Andreas Schwab, 2011/03/03
- Re: Memory leaks, Uday S Reddy, 2011/03/03
- Re: Memory leaks, Uday S Reddy, 2011/03/07
- Re: Memory leaks, Andreas Schwab, 2011/03/07
- Re: Memory leaks, David Kastrup, 2011/03/07
- Re: Memory leaks, David Kastrup, 2011/03/07
- Re: Memory leaks, Richard Stallman, 2011/03/08
- Re: Memory leaks, Uday S Reddy, 2011/03/07
- Re: Memory leaks, Stefan Monnier, 2011/03/07
- Re: Memory leaks, Andreas Schwab, 2011/03/08