From: Kevin L. <ke...@lo...> - 2005-05-22 20:47:53
|
> > You can try the 'Start the memory leak checker' command in > common/monitor_memory.pl, which automates what you are > currently trying > (disable a code file at a time). Sometimes a perl install > can go bad, > so running the compiled mhe.exe can rule that out. > > Bruce Thanks for the reply. I am already running the mhe.exe file and the memory leak checker. Through a process of elimination (one script at a time) have found the code that causes memory to leak. It's for a palmpad remote control, intended for macros. Here's the code: # Lots of ways to do it. Here is one suggestion: $remote1 = new Serial_Item('XB8BJ', '8-on'); $remote1 -> add ('XB2BJ', '2-on'); $remote1 -> add ('XB3BJ', '3-on'); $remote1 -> add ('XB4BJ', '4-on'); $remote1 -> add ('XB6BK', '6-off'); $remote1 -> add ('XB7BK', '7-off'); $remote1 -> add ('XB8BK', '8-off'); # B1 EATING # B2 - CLEANING UP set $living_room_lights '100%' if state_now $remote1 eq '2-on'; set $reading_light ON if state_now $remote1 eq '2-on'; set $entry_light ON if state_now $remote1 eq '2-on'; set $den_light '100%' if state_now $remote1 eq '2-on'; set $hall_light '100%' if state_now $remote1 eq '2-on'; set $little_kids_light '100%' if state_now $remote1 eq '2-on'; set $big_kids_light '100%' if state_now $remote1 eq '2-on'; set $master_light '100%' if state_now $remote1 eq '2-on'; # B3 - KIDS PLAYING set $living_room_lights '60%' if state_now $remote1 eq '3-on'; set $reading_light ON if state_now $remote1 eq '3-on'; set $entry_light ON if state_now $remote1 eq '3-on'; set $den_light '60%' if state_now $remote1 eq '3-on'; set $hall_light ON if state_now $remote1 eq '3-on'; set $little_kids_light '60%' if state_now $remote1 eq '3-on'; set $big_kids_light '60%' if state_now $remote1 eq '3-on'; # B4 ON - WATCHING A MOVIE set $entry_light OFF if state_now $remote1 eq '4-on'; set $reading_light OFF if state_now $remote1 eq '4-on'; set $reading_light '40%' if state_now $remote1 eq '4-on'; set $living_room_lights OFF if state_now $remote1 eq '4-on'; set $den_light OFF if state_now $remote1 eq '4-on'; set $hall_light OFF if state_now $remote1 eq '4-on'; set $hall_light '60%' if state_now $remote1 eq '4-on'; set $little_kids_light OFF if state_now $remote1 eq '4-on'; set $big_kids_light OFF if state_now $remote1 eq '4-on'; set $master_light OFF if state_now $remote1 eq '4-on'; set $kevin_computer_light OFF if state_now $remote1 eq '4-on'; set $christine_computer_light OFF if state_now $remote1 eq '4-on'; set $living_room_lights OFF if state_now $remote1 eq '4-on'; set $garage_right_light OFF if state_now $remote1 eq '4-on'; # B6 OFF - LITTLE KIDS GONE TO BED set $little_kids_light OFF if state_now $remote1 eq '6-off'; set $hall_light OFF if state_now $remote1 eq '6-off'; set $hall_light '50%' if state_now $remote1 eq '6-off'; set $kids_nightlights ON if state_now $remote1 eq '6-off'; set $mode_sleeping 'kids'; set $mode_security 'armed'; # B7 OFF - BIG KIDS GONE TO BED set $big_kids_light OFF if state_now $remote1 eq '7-off'; set $little_kids_light OFF if state_now $remote1 eq '7-off'; set $hall_light OFF if state_now $remote1 eq '7-off'; set $hall_light '50%' if state_now $remote1 eq '7-off'; set $kids_nightlights ON if state_now $remote1 eq '7-off'; set $mode_sleeping 'kids'; set $mode_security 'armed'; # B8 ON - KEVIN GETTING UP set $living_room_lights '50%' if state_now $remote1 eq '8-on'; set $reading_light '50%' if state_now $remote1 eq '8-on'; set $kevin_computer_light ON if state_now $remote1 eq '8-on'; # set $hall_light '40%' if state_now $remote1 eq '8-on'; set $garage_opener ON if state_now $remote1 eq '8-on'; set $mode_sleeping 'nobody'; set $mode_security 'unarmed'; # B8 OFF - EVERYBODY GONE TO BED set $master_light OFF if state_now $remote1 eq '8-off'; set $garage_opener OFF if state_now $remote1 eq '8-off'; set $garage_right_light OFF if state_now $remote1 eq '8-off'; set $entry_light OFF if state_now $remote1 eq '8-off'; set $den_light OFF if state_now $remote1 eq '8-off'; set $kevin_computer_light OFF if state_now $remote1 eq '8-off'; set $christine_computer_light OFF if state_now $remote1 eq '8-off'; set $living_room_lights OFF if state_now $remote1 eq '8-off'; set $big_kids_light OFF if state_now $remote1 eq '8-off'; set $little_kids_light OFF if state_now $remote1 eq '8-off'; set $hall_light OFF if state_now $remote1 eq '8-off'; set $christine_bedside OFF if state_now $remote1 eq '8-off'; set $kevin_bedside OFF if state_now $remote1 eq '8-off'; set $kids_nightlights ON if state_now $remote1 eq '8-off'; set $reading_light OFF if state_now $remote1 eq '8-off'; set $mode_sleeping 'all'; set $mode_security 'armed'; The code is based on one of the keychain remote sample files. It eats around 1Mb/minute. Can you point me to a sample file of the "right" way to code this remote? Kevin. |