[haiku-bugs] Re: [Haiku] #1074: Identify and fix performance bottlenecks in our app_server

  • From: "Haiku" <trac@xxxxxxxxxxxx>
  • To: undisclosed-recipients: ;
  • Date: Fri, 03 Jul 2020 17:47:41 -0000

#1074: Identify and fix performance bottlenecks in our app_server
---------------------------------+----------------------
  Reporter:  axeld               |      Owner:  jua
      Type:  enhancement         |     Status:  assigned
  Priority:  normal              |  Milestone:  R1
 Component:  Servers/app_server  |    Version:
Resolution:                      |   Keywords:
Blocked By:                      |   Blocking:
  Platform:  All                 |
---------------------------------+----------------------
Comment (by X512):

 I run test with small window and placeholder view that call
 `BView::Invalidate` at end of `BView::Draw`. profile results:

 {{{
 profiling results for thread "w:2284:TestApp" (2287):
   tick interval:  1000 us
   total ticks:    27072 (27072000 us)
   unknown ticks:  0 (0 us,   0.00%)
   dropped ticks:  0 (0 us,   0.00%)

         hits     unknown    image
 ------------------------------------------------------------------------------
         7154           0        1 kernel_x86_64
         7336           0     3078 /boot/system/servers/app_server
         2742           0     3080 /boot/system/lib/libbe.so
           56           0     3100 /boot/system/lib/libstdc++.so.6.0.25
         9784           0     3101 /boot/system/lib/libroot.so

         hits       in us    in %   image  function
 ------------------------------------------------------------------------------
         6080     6080000   22.46    3101  system_time
         3199     3199000   11.82    3078
 Window::BeginUpdate(BPrivate::PortLink&)
         2435     2435000    8.99       1  ConditionVariable::_Notify(bool,
 int)
         1642     1642000    6.07       1
 ConditionVariableEntry::Wait(unsigned int, long)
          737      737000    2.72       1  x86_64_syscall_entry
          688      688000    2.54       1  _mutex_lock
          681      681000    2.52    3101  __mutex_lock
          570      570000    2.11    3101  __mutex_unlock
          489      489000    1.81    3080
 agg::math_stroke<agg::pod_bvector<agg::point_base<double>, 6u>

::calc_miter(agg::pod_bvector<agg::point_base<double>, 6u>&,
 agg::vertex_dist const&, agg::vertex_dist const&, agg::vertex_dist const&,
 double, double, double, double, agg::line_join_e, double)
          458      458000    1.69       1  _mutex_unlock
          431      431000    1.59    3101
 BPrivate::hoardHeap::findAvailableSuperblock(int, BPrivate::block*&,
 BPrivate::processHeap*)
          422      422000    1.56    3078  void
 
agg::render_scanlines<agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_int>
, agg::scanline_p8,
 agg::renderer_scanline_aa_solid<agg::renderer_region<PixelFormat> >
(agg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_int>
&, agg::scanline_p8&,
 agg::renderer_scanline_aa_solid<agg::renderer_region<PixelFormat> >&)
          352      352000    1.30    3080
 agg::vcgen_stroke::vertex(double*, double*)
          317      317000    1.17    3101
 BPrivate::hoardHeap::freeBlock(BPrivate::block*&, BPrivate::superblock*&,
 int, BPrivate::processHeap*)
          270      270000    1.00    3078
 agg::conv_adaptor_vcgen<agg::path_base<agg::vertex_block_storage<double,
 8u, 256u> >, agg::vcgen_stroke, agg::null_markers>::vertex(double*,
 double*)
 ...
 }}}

 `system_time` seems to be quite slow.
-- 
Ticket URL: <https://dev.haiku-os.org/ticket/1074#comment:25>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.

Other related posts: