Hi.

  I played a little with the kernel trace tool and discovered that
Emacs quite regularly calls system functions although it's not even
active. I'm not sure whether this is results from the Carbon port or
whether this is an artifact of standard Emacs. However, /usr/bin/emacs
doesn't show this behavior:

As you can see within just three seconds, Emacs executed 54 system
calls. I attached the traces which show you where these calls
originate.

It this is a result of the Carbon implementation, it should be fixed,
because Emacs uses a lot of resources and battery over time without
doing anything.

-------

$ time dtrace -n syscall:::entry'/execname== "Emacs"/[EMAIL PROTECTED]()] =
count()}'

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x46
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending+0x1f
              Emacs`select_and_poll_event+0x35
              Emacs`sys_select+0x733
              Emacs`wait_reading_process_output+0x7a7
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
                6

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x46
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending+0x1f
              Emacs`wait_reading_process_output+0x60c
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x46
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending_run_timers+0x2c
              Emacs`wait_reading_process_output+0x89a
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x58
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending+0x1f
              Emacs`select_and_poll_event+0x35
              Emacs`sys_select+0x733
              Emacs`wait_reading_process_output+0x7a7
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
                6

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x58
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending+0x1f
              Emacs`wait_reading_process_output+0x60c
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

              libSystem.B.dylib`sigprocmask+0xa
              Emacs`gobble_input+0x58
              Emacs`get_input_pending+0x5e
              Emacs`detect_input_pending_run_timers+0x2c
              Emacs`wait_reading_process_output+0x89a
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

              libSystem.B.dylib`setitimer+0xa
              Emacs`start_polling+0x32
              Emacs`redisplay_internal+0x11d6
              Emacs`redisplay_preserve_echo_area+0x33
              Emacs`detect_input_pending_run_timers+0x43
              Emacs`wait_reading_process_output+0x89a
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

              libSystem.B.dylib`__sigaction+0xa
              Emacs`sys_signal+0x33
              Emacs`turn_on_atimers+0x29
              Emacs`start_polling+0x32
              Emacs`redisplay_internal+0x11d6
              Emacs`redisplay_preserve_echo_area+0x33
              Emacs`detect_input_pending_run_timers+0x43
              Emacs`wait_reading_process_output+0x89a
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
                6

              libSystem.B.dylib`select$DARWIN_EXTSN$NOCANCEL+0xa
              Emacs`select_and_poll_event+0xa2
              Emacs`sys_select+0x733
              Emacs`wait_reading_process_output+0x7a7
              Emacs`sit_for+0x124
              Emacs`read_char+0xe90
              Emacs`read_key_sequence+0x64b
              Emacs`command_loop_1+0x378
              Emacs`internal_condition_case+0xea
              Emacs`command_loop_2+0x44
              Emacs`internal_catch+0xab
              Emacs`command_loop+0x76
              Emacs`recursive_edit_1+0x8c
              Emacs`Frecursive_edit+0xad
              Emacs`main+0x10e6
              Emacs`_start+0xd8
              Emacs`start+0x29
              0x3
                6

real    0m3.328s
user    0m0.149s
sys     0m0.138s

--~--~---------~--~----~------------~-------~--~----~
Carbon Emacs User Group
http://groups.google.com/group/carbon-emacs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to