2001-05-16
2001-05-16 12:57:49 by Per Hedbor <ph@opera.com>
-
7937dff7f8de0edfa81a0f9b633fffc77c611702
(22 lines)
(+16/-6)
[
Show
| Annotate
]
Branch: 5.2
Count RXML overhead and entities when using AVERAGE_PROFILING
Rev: server/base_server/configuration.pike:1.432
Rev: server/base_server/rxml.pike:1.300
Rev: server/etc/modules/RXML.pmod/module.pmod:1.154
1:
- // $Id: module.pmod,v 1.153 2001/05/14 04:30:30 per Exp $
+ // $Id: module.pmod,v 1.154 2001/05/16 12:57:49 per Exp $
// Kludge: Must use "RXML.refs" somewhere for the whole module to be
// loaded correctly.
2509:
// Note: It might be somewhat tricky to override this function.
// Note: Might be destructive on raw_args.
{
+
Frame this = this_object();
Context ctx = parser->context;
RequestID id = ctx->id;
2620: Inside #if defined(MODULE_LEVEL_SECURITY)
break process_tag;
}
#endif
- PROF_ENTER(tag->name,"tag");
+
}
if (raw_args) {
2775:
else {
THIS_TAG_DEBUG ("Calling do_enter\n");
PROFILE_SWITCH (ctx, "rxml internal", "tag:" + tag->name);
+ COND_PROF_ENTER(tag,tag->name,"tag");
exec = ([function(RequestID:array)] do_enter) (id); // Might unwind.
-
+ COND_PROF_LEAVE(tag,tag->name,"tag");
PROFILE_SWITCH (ctx, "tag:" + tag->name, "rxml internal");
THIS_TAG_DEBUG ((exec ? "Exec array" : "Zero") +
" returned from do_enter\n");
2837:
else {
THIS_TAG_DEBUG ("Calling do_iterate\n");
PROFILE_SWITCH (ctx, "rxml internal", "tag:" + tag->name);
+ COND_PROF_ENTER(tag,tag->name,"tag");
iter = (/*[function(RequestID:int)]HMM*/ do_iterate) (
id); // Might unwind.
-
+ COND_PROF_LEAVE(tag,tag->name,"tag");
PROFILE_SWITCH (ctx, "tag:" + tag->name, "rxml internal");
THIS_TAG_DEBUG (sprintf ("%O returned from do_iterate\n", iter));
if (ctx->new_runtime_tags)
2907:
THIS_TAG_DEBUG (sprintf ("Iter[%d]: Calling do_process in "
"streaming mode\n", debug_iter));
PROFILE_SWITCH (ctx, "rxml internal", "tag:" + tag->name);
+ COND_PROF_ENTER(tag,tag->name,"tag");
exec = do_process (id, piece); // Might unwind.
-
+ COND_PROF_LEAVE(tag,tag->name,"tag");
PROFILE_SWITCH (ctx, "tag:" + tag->name, "rxml internal");
THIS_TAG_DEBUG (sprintf ("Iter[%d]: %s returned from "
"do_process\n", debug_iter,
2997:
THIS_TAG_DEBUG (sprintf ("Iter[%d]: Calling do_process\n",
debug_iter));
PROFILE_SWITCH (ctx, "rxml internal", "tag:" + tag->name);
+ COND_PROF_ENTER(tag,tag->name,"tag");
exec = ([function(RequestID,void|mixed:array)] do_process) (
id); // Might unwind.
-
+ COND_PROF_LEAVE(tag,tag->name,"tag");
PROFILE_SWITCH (ctx, "tag:" + tag->name, "rxml internal");
THIS_TAG_DEBUG (sprintf ("Iter[%d]: %s returned from do_process\n",
debug_iter, exec ? "Exec array" : "Zero"));
3056:
else {
THIS_TAG_DEBUG ("Calling do_return\n");
PROFILE_SWITCH (ctx, "rxml internal", "tag:" + tag->name);
+ COND_PROF_ENTER(tag,tag->name,"tag");
exec = ([function(RequestID:array)] do_return) (id); // Might unwind.
-
+ COND_PROF_LEAVE(tag,tag->name,"tag");
PROFILE_SWITCH (ctx, "tag:" + tag->name, "rxml internal");
THIS_TAG_DEBUG ((exec ? "Exec array" : "Zero") +
" returned from do_return\n");
3168:
#endif
});
TRACE_LEAVE (action);
- COND_PROF_LEAVE(tag,tag->name,"tag");
+
}
else {
THIS_TAG_TOP_DEBUG ("Exception\n");
- COND_PROF_LEAVE(tag,tag->name,"tag");
+
TRACE_LEAVE ("exception");
ctx->handle_exception (err2, parser); // Will rethrow unknown errors.
result = nil;
3198:
else {
THIS_TAG_TOP_DEBUG ("Done\n");
- COND_PROF_LEAVE(tag,tag->name,"tag");
+
TRACE_LEAVE ("");
}
}
3628:
"(Use ':' in front to quote a character reference containing dots.)\n");
mixed val;
PROFILE_SWITCH (context, "rxml internal", "var:" + varref);
+ COND_PROF_ENTER(mixed id=context->id,varref,"entity");
if (zero_type (val = context->get_var ( // May throw.
splitted[1..], splitted[0],
encoding ? t_string : surrounding_type)))
val = nil;
-
+ COND_PROF_LEAVE(mixed id=context->id,varref,"entity");
PROFILE_SWITCH (context, "var:" + varref, "rxml internal");
if (encoding && !(val = Roxen->roxen_encode (val + "", encoding)))
parse_error ("Unknown encoding %O.\n", encoding);