Mercurial > hg > xemacs-beta
comparison src/profile.c @ 2421:ab71ad6ff3dd
[xemacs-hg @ 2004-12-06 03:50:53 by ben]
(none)
README.packages: Document use of --package-prefix.
Fix error in specifying standard package location.
make-docfile.c: Use QXE_PATH_MAX.
info.el: Correct doc string giving example package path.
menubar-items.el: Move Prefix Rectangle command up one level.
xemacs/packages.texi: Add long form of Lisp Reference Manual to links.
Add links pointing to Lisp Reference Manual for more detailed
package discussion.
lispref/range-tables.texi: Document range-table changes.
internals/internals.texi: Update history section.
elhash.c, elhash.h, profile.c: Create inchash_eq() to allow direct incrementing of hash-table
entry. Use in profile.c to try to reduce profiling overhead.
Increase initial size of profile hash tables to reduce profiling
overhead.
buffer.c, device-msw.c, dialog-msw.c, dired-msw.c, editfns.c, event-msw.c, events.c, glyphs-msw.c, keymap.c, objects-msw.c, process-nt.c, syswindows.h, text.c, text.h, unexnt.c: Rename xetcs* -> qxetcs* for consistency with qxestr*.
Rename ei*_c(_*) -> ei*_ascii(_*) since they work with ASCII-only
strings not "C strings", whatever those are. This is the last
place where "c" was incorrectly being used for "ascii".
dialog-msw.c, dumper.c, event-msw.c, fileio.c, glyphs-gtk.c, glyphs-x.c, nt.c, process-nt.c, realpath.c, sysdep.c, sysfile.h, unexcw.c, unexnext.c, unexnt.c: Try to avoid differences in systems that do or do not include
final null byte in PATH_MAX. Create PATH_MAX_INTERNAL and
PATH_MAX_EXTERNAL and use them everywhere. Rewrite code in
dumper.c to avoid use of PATH_MAX. When necessary in nt.c,
use _MAX_PATH instead of MAX_PATH to be consistent with
other places.
text.c: Code to short-circuit when binary or Unicode was not working
due to EOL wrapping. Fix this code to work when either no
EOL autodetection or no CR's or LF's in the text.
lisp.h, rangetab.c, rangetab.h, regex.c, search.c: Implement different types of ranges (open/closed start and end).
Change default to be start-closed, end-open.
author | ben |
---|---|
date | Mon, 06 Dec 2004 03:52:23 +0000 |
parents | ecf1ebac70d8 |
children | b49d38bc659d |
comparison
equal
deleted
inserted
replaced
2420:ad56e5a6d09f | 2421:ab71ad6ff3dd |
---|---|
126 create_profile_tables (void) | 126 create_profile_tables (void) |
127 { | 127 { |
128 create_timing_profile_table (); | 128 create_timing_profile_table (); |
129 if (NILP (Vtotal_timing_profile_table)) | 129 if (NILP (Vtotal_timing_profile_table)) |
130 Vtotal_timing_profile_table = | 130 Vtotal_timing_profile_table = |
131 make_lisp_hash_table (100, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); | 131 make_lisp_hash_table (1000, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); |
132 if (NILP (Vcall_count_profile_table)) | 132 if (NILP (Vcall_count_profile_table)) |
133 Vcall_count_profile_table = | 133 Vcall_count_profile_table = |
134 make_lisp_hash_table (100, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); | 134 make_lisp_hash_table (1000, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); |
135 if (NILP (Vgc_usage_profile_table)) | 135 if (NILP (Vgc_usage_profile_table)) |
136 Vgc_usage_profile_table = | 136 Vgc_usage_profile_table = |
137 make_lisp_hash_table (100, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); | 137 make_lisp_hash_table (1000, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); |
138 if (NILP (Vtotal_gc_usage_profile_table)) | 138 if (NILP (Vtotal_gc_usage_profile_table)) |
139 Vtotal_gc_usage_profile_table = | 139 Vtotal_gc_usage_profile_table = |
140 make_lisp_hash_table (100, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); | 140 make_lisp_hash_table (1000, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); |
141 } | 141 } |
142 | 142 |
143 static Lisp_Object | 143 static Lisp_Object |
144 current_profile_function (void) | 144 current_profile_function (void) |
145 { | 145 { |
176 } | 176 } |
177 | 177 |
178 void | 178 void |
179 profile_record_consing (EMACS_INT size) | 179 profile_record_consing (EMACS_INT size) |
180 { | 180 { |
181 Lisp_Object fun; | |
182 Lisp_Object count; | |
183 | |
184 in_profiling++; | 181 in_profiling++; |
185 fun = current_profile_function (); | 182 inchash_eq (current_profile_function (), Vgc_usage_profile_table, size); |
186 count = Fgethash (fun, Vgc_usage_profile_table, Qzero); | |
187 Fputhash (fun, make_int (size + XINT (count)), Vgc_usage_profile_table); | |
188 in_profiling--; | 183 in_profiling--; |
189 } | 184 } |
190 | 185 |
191 void | 186 void |
192 profile_record_unconsing (EMACS_INT size) | 187 profile_record_unconsing (EMACS_INT size) |
226 in_profiling++; | 221 in_profiling++; |
227 profiling_lock = 1; | 222 profiling_lock = 1; |
228 /* See comments in create_timing_profile_table(). */ | 223 /* See comments in create_timing_profile_table(). */ |
229 pregrow_hash_table_if_necessary (big_profile_table, EXTRA_BREATHING_ROOM); | 224 pregrow_hash_table_if_necessary (big_profile_table, EXTRA_BREATHING_ROOM); |
230 profiling_lock = 0; | 225 profiling_lock = 0; |
231 Fputhash (*bt->function, | 226 inchash_eq (*bt->function, Vcall_count_profile_table, 1); |
232 make_int (1 + XINT (Fgethash (*bt->function, | |
233 Vcall_count_profile_table, | |
234 Qzero))), | |
235 Vcall_count_profile_table); | |
236 /* This may be set if the function was in its preamble at the time that | 227 /* This may be set if the function was in its preamble at the time that |
237 `start-profiling' was called. If so, we shouldn't reset the values | 228 `start-profiling' was called. If so, we shouldn't reset the values |
238 because we may get inconsistent results, since we have already started | 229 because we may get inconsistent results, since we have already started |
239 recording ticks and consing for the function. */ | 230 recording ticks and consing for the function. */ |
240 if (!bt->function_being_called) | 231 if (!bt->function_being_called) |