mod_log_events_by_memory/mod_log_events_by_memory.lua
changeset 3619 5fe34e5f9829
equal deleted inserted replaced
3618:f74444b0e187 3619:5fe34e5f9829
       
     1 module:set_global();
       
     2 
       
     3 local treshold = module:get_option_number("log_memory_threshold", 20*1024);
       
     4 
       
     5 function event_wrapper(handlers, event_name, event_data)
       
     6 	local memory_before = collectgarbage("count")*1024;
       
     7 	local ret = handlers(event_name, event_data);
       
     8 	local memory_after = collectgarbage("count")*1024;
       
     9 	if (memory_after - memory_before) > treshold then
       
    10 		module:log("warn", "Memory increased by %g bytes while processing event '%s'", (memory_after - memory_before), event_name);
       
    11 	end
       
    12 	return ret;
       
    13 end
       
    14 
       
    15 local http_events = require "net.http.server"._events;
       
    16 module:wrap_object_event(http_events, false, event_wrapper);
       
    17 
       
    18 module:wrap_event(false, event_wrapper);
       
    19 function module.add_host(module)
       
    20 	module:wrap_event(false, event_wrapper);
       
    21 end