Buffer Profile

From: George (greerga@DRAGON.HAM.MUOHIO.EDU)
Date: 08/23/97


Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total
 time   seconds   seconds    calls  us/call  us/call  name
 37.97      0.30     0.30                             mcount
        - The profiler?
 16.46      0.43     0.13    92110     1.41     1.49  acquire_buffer
 13.92      0.54     0.11    19276     5.71    10.70  fread_string
        - The MUD spent more time in acquire_buffer than fread_string.
        - However, look at how many times each was called, acquire_bufer
        - was called 4.77 times more than fread_string and was only 3%
        - higher in time.  a_b() also took 4 usecs less per call.
  7.59      0.60     0.06    92110     0.65     1.01  detach_buffer
  3.80      0.63     0.03    92110     0.33     0.33  clear_buffer
        - These two take up more % because they were called _many_
        - more times than any other function.
  2.53      0.65     0.02    28144     0.71     3.21  get_line
  1.27      0.66     0.01   133531     0.07     0.07  get_buffer_head
        - Should inline get_buffer_head()...
  1.27      0.67     0.01     5976     1.67     1.67  real_room
  1.27      0.68     0.01     4290     2.33     2.33  asciiflag_conv
  1.27      0.69     0.01     3153     3.17     3.17  get_one_line
  1.27      0.70     0.01     1580     6.33     6.33  real_object
  1.27      0.71     0.01     1421     7.04     7.04  real_mobile
  1.27      0.72     0.01     1247     8.02    10.52  fread_action
  1.27      0.73     0.01      115    86.96    86.96  find_command
  1.27      0.74     0.01       61   163.93   167.36  reset_zone
  1.27      0.75     0.01       36   277.78   592.63  boot_the_shops
  1.27      0.76     0.01        7  1428.57  1484.08  perform_immort_where
[...etc...]

In bootup speed tests with identical world files and same compiler options,
the stock CircleMUD took 8.345 seconds to boot to the point of giong to
sleep. My current buffer code with everything else the same took 10.918
seconds. But that's not too accurate because I got it down to 3.666 seconds
by running it repeatedly thereby caching more of the disk.  Stock CircleMUD
got similiar results in the ~3 second range after running repeatedly.
Meaning of this informal benchmark? More cache is good, that's about it.

--
greerga@muohio.edu me@null.net | Genius may have its limitations, but stupidity
http://www.muohio.edu/~greerga | is not thus handicapped. -- Elbert Hubbard


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/08/00 PST