comparison src/ChangeLog @ 5170:5ddbab03b0e6

various fixes to memory-usage stats -------------------- ChangeLog entries follow: -------------------- lisp/ChangeLog addition: 2010-03-25 Ben Wing <ben@xemacs.org> * diagnose.el (show-memory-usage): * diagnose.el (show-object-memory-usage-stats): Further changes to correspond with changes in the C code; add an additional column in show-object-memory-usage-stats showing the ancillary Lisp overhead used with each type; shrink columns for windows in show-memory-usage to get it to fit in 79 chars. src/ChangeLog addition: 2010-03-25 Ben Wing <ben@xemacs.org> * alloc.c: * alloc.c (struct): * alloc.c (finish_object_memory_usage_stats): * alloc.c (object_memory_usage_stats): * alloc.c (Fobject_memory_usage): * alloc.c (lisp_object_memory_usage_full): * alloc.c (compute_memusage_stats_length): * lrecord.h: * lrecord.h (struct lrecord_implementation): Add fields to the `lrecord_implementation' structure to list an offset into the array of extra statistics in a `struct generic_usage_stats' and a length, listing the first slice of ancillary Lisp-object memory. Compute automatically in compute_memusage_stats_length(). Use to add an entry `FOO-lisp-ancillary-storage' for object type FOO. Don't crash when an int or char is given to object-memory-usage, signal an error instead. Add functions lisp_object_memory_usage_full() and lisp_object_memory_usage() to compute the total memory usage of an object (sum of object, non-Lisp attached, and Lisp ancillary memory). * array.c: * array.c (gap_array_memory_usage): * array.h: Add function to return memory usage of a gap array. * buffer.c (struct buffer_stats): * buffer.c (compute_buffer_usage): * buffer.c (vars_of_buffer): * extents.c (compute_buffer_extent_usage): * marker.c: * marker.c (compute_buffer_marker_usage): * extents.h: * lisp.h: Remove `struct usage_stats' arg from compute_buffer_marker_usage() and compute_buffer_extent_usage() -- these are ancillary Lisp objects and don't get accumulated into `struct usage_stats'; change the value of `memusage_stats_list' so that `markers' and `extents' memory is in Lisp-ancillary, where it belongs. In compute_buffer_marker_usage(), use lisp_object_memory_usage() rather than lisp_object_storage_size(). * casetab.c: * casetab.c (case_table_memory_usage): * casetab.c (vars_of_casetab): * emacs.c (main_1): Add memory usage stats for case tables. * lisp.h: Add comment explaining the `struct generic_usage_stats' more, as well as the new fields in lrecord_implementation. * console-impl.h: * console-impl.h (struct console_methods): * scrollbar-gtk.c: * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage): * scrollbar-msw.c: * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage): * scrollbar-x.c: * scrollbar-x.c (x_compute_scrollbar_instance_usage): * scrollbar.c: * scrollbar.c (struct scrollbar_instance_stats): * scrollbar.c (compute_all_scrollbar_instance_usage): * scrollbar.c (scrollbar_instance_memory_usage): * scrollbar.c (scrollbar_objects_create): * scrollbar.c (vars_of_scrollbar): * scrollbar.h: * symsinit.h: * window.c: * window.c (find_window_mirror_maybe): * window.c (struct window_mirror_stats): * window.c (compute_window_mirror_usage): * window.c (window_mirror_memory_usage): * window.c (compute_window_usage): * window.c (window_objects_create): * window.c (syms_of_window): * window.c (vars_of_window): Redo memory-usage associated with windows, window mirrors, and scrollbar instances. Should fix crash in find_window_mirror, among other things. Properly assign memo ry to object memory, non-Lisp extra memory, and Lisp ancillary memory. For example, redisplay structures are non-Lisp memory hanging off a window mirror, not a window; make it an ancillary Lisp-object field. Window mirrors and scrollbar instances have their own statistics, among other things.
author Ben Wing <ben@xemacs.org>
date Thu, 25 Mar 2010 06:07:25 -0500
parents 6c6d78781d59
children 8cd17b2131a1
comparison
equal deleted inserted replaced
5169:6c6d78781d59 5170:5ddbab03b0e6
1 2010-03-25 Ben Wing <ben@xemacs.org>
2
3 * alloc.c:
4 * alloc.c (struct):
5 * alloc.c (finish_object_memory_usage_stats):
6 * alloc.c (object_memory_usage_stats):
7 * alloc.c (Fobject_memory_usage):
8 * alloc.c (lisp_object_memory_usage_full):
9 * alloc.c (compute_memusage_stats_length):
10 * lrecord.h:
11 * lrecord.h (struct lrecord_implementation):
12 Add fields to the `lrecord_implementation' structure to list an
13 offset into the array of extra statistics in a
14 `struct generic_usage_stats' and a length, listing the first slice
15 of ancillary Lisp-object memory. Compute automatically in
16 compute_memusage_stats_length(). Use to add an entry
17 `FOO-lisp-ancillary-storage' for object type FOO.
18
19 Don't crash when an int or char is given to object-memory-usage,
20 signal an error instead.
21
22 Add functions lisp_object_memory_usage_full() and
23 lisp_object_memory_usage() to compute the total memory usage of an
24 object (sum of object, non-Lisp attached, and Lisp ancillary
25 memory).
26
27 * array.c:
28 * array.c (gap_array_memory_usage):
29 * array.h:
30 Add function to return memory usage of a gap array.
31
32 * buffer.c (struct buffer_stats):
33 * buffer.c (compute_buffer_usage):
34 * buffer.c (vars_of_buffer):
35 * extents.c (compute_buffer_extent_usage):
36 * marker.c:
37 * marker.c (compute_buffer_marker_usage):
38 * extents.h:
39 * lisp.h:
40 Remove `struct usage_stats' arg from compute_buffer_marker_usage()
41 and compute_buffer_extent_usage() -- these are ancillary Lisp
42 objects and don't get accumulated into `struct usage_stats';
43 change the value of `memusage_stats_list' so that `markers' and
44 `extents' memory is in Lisp-ancillary, where it belongs.
45
46 In compute_buffer_marker_usage(), use lisp_object_memory_usage()
47 rather than lisp_object_storage_size().
48
49 * casetab.c:
50 * casetab.c (case_table_memory_usage):
51 * casetab.c (vars_of_casetab):
52 * emacs.c (main_1):
53 Add memory usage stats for case tables.
54
55 * lisp.h:
56 Add comment explaining the `struct generic_usage_stats' more,
57 as well as the new fields in lrecord_implementation.
58
59 * console-impl.h:
60 * console-impl.h (struct console_methods):
61 * scrollbar-gtk.c:
62 * scrollbar-gtk.c (gtk_compute_scrollbar_instance_usage):
63 * scrollbar-msw.c:
64 * scrollbar-msw.c (mswindows_compute_scrollbar_instance_usage):
65 * scrollbar-x.c:
66 * scrollbar-x.c (x_compute_scrollbar_instance_usage):
67 * scrollbar.c:
68 * scrollbar.c (struct scrollbar_instance_stats):
69 * scrollbar.c (compute_all_scrollbar_instance_usage):
70 * scrollbar.c (scrollbar_instance_memory_usage):
71 * scrollbar.c (scrollbar_objects_create):
72 * scrollbar.c (vars_of_scrollbar):
73 * scrollbar.h:
74 * symsinit.h:
75 * window.c:
76 * window.c (find_window_mirror_maybe):
77 * window.c (struct window_mirror_stats):
78 * window.c (compute_window_mirror_usage):
79 * window.c (window_mirror_memory_usage):
80 * window.c (compute_window_usage):
81 * window.c (window_objects_create):
82 * window.c (syms_of_window):
83 * window.c (vars_of_window):
84 Redo memory-usage associated with windows, window mirrors, and
85 scrollbar instances. Should fix crash in find_window_mirror,
86 among other things. Properly assign memo ry to object memory,
87 non-Lisp extra memory, and Lisp ancillary memory. For example,
88 redisplay structures are non-Lisp memory hanging off a window
89 mirror, not a window; make it an ancillary Lisp-object field.
90 Window mirrors and scrollbar instances have their own statistics,
91 among other things.
92
1 2010-03-24 Ben Wing <ben@xemacs.org> 93 2010-03-24 Ben Wing <ben@xemacs.org>
2 94
3 * array.h: 95 * array.h:
4 * array.h (XD_LISP_DYNARR_DESC): 96 * array.h (XD_LISP_DYNARR_DESC):
5 * dumper.c (pdump_register_sub): 97 * dumper.c (pdump_register_sub):
6 * dumper.c (pdump_store_new_pointer_offsets): 98 * dumper.c (pdump_store_new_pointer_offsets):
7 * dumper.c (pdump_reloc_one_mc): 99 * dumper.c (pdump_reloc_one_mc):
8 * elhash.c: 100 * elhash.c:
9 * gc.c (lispdesc_one_description_line_size): 101 * gc.c (lispdesc_one_description_line_size):
10 * gc.c (kkcc_marking): 102 * gc.c (kkcc_marking):
11 * lrecord.h: 103 * lrecord.h:
12 * lrecord.h (IF_NEW_GC): 104 * lrecord.h (IF_NEW_GC):
13 * lrecord.h (enum memory_description_type): 105 * lrecord.h (enum memory_description_type):
14 * lrecord.h (enum data_description_entry_flags): 106 * lrecord.h (enum data_description_entry_flags):