#1074: Identify and fix performance bottlenecks in our app_server
---------------------------------+----------------------
Reporter: axeld | Owner: jua
Type: enhancement | Status: assigned
Priority: normal | Milestone: R1.1
Component: Servers/app_server | Version:
Resolution: | Keywords:
Blocked By: | Blocking:
Platform: All |
---------------------------------+----------------------
Comment (by X512):
It seems there are significant overhead in heap memory allocator when
creating and destroying windows:
{{{
profiling results for summary "all" (1):
tick interval: 1000 us
total ticks: 140988 (140988000 us)
unknown ticks: 0 (0 us, 0.00%)
dropped ticks: 0 (0 us, 0.00%)
hits unknown image
------------------------------------------------------------------------------
852 0 5
/Haiku/data/packages/haiku2/generated.x86_64.native/tests/libbe_test/x86_64/apps/lib/libtestappserver.so
34 0 10 /boot/system/lib/libfreetype.so.6.18.3
2 0 3 /boot/system/runtime_loader
8 0 8
/Haiku/data/packages/haiku2/generated.x86_64.native/tests/libbe_test/x86_64/apps/lib/libhwinterfaceimpl.so
63 0 21 /boot/system/lib/libbe.so
134642 0 12 /boot/system/lib/libroot.so
17 0 11 /boot/system/lib/libstdc++.so.6.0.29
4914 0 6
/Haiku/data/packages/haiku2/generated.x86_64.native/tests/libbe_test/x86_64/apps/lib/libbe_test.so
1 0 27 /boot/system/lib/libcrypto.so.1.1
21 0 22
/boot/home/Tests/VideoStreams/build.x86_64/install/lib/libvideostreams.so
4 0 7
/Haiku/data/packages/haiku2/generated.x86_64.native/tests/libbe_test/x86_64/apps/lib/libhwinterface.so
hits in us in % image function
------------------------------------------------------------------------------
65970 65970000 46.79 12 BPrivate::hoardSbrk(long)
64626 64626000 45.84 12 BPrivate::hoardUnsbrk(void*,
long)
1790 1790000 1.27 6
BRegion::Support::miRegionOp(BRegion*, BRegion const*, BRegion const*, int
(*)(BRegion*, clipping_rect*, clipping_rect*, clipping_rect*,
clipping_rect*, int, int), int (*)(BRegion*, clipping_rect*,
clipping_rect*, int, int), int (*)(BRegion*, clipping_rect*,
clipping_rect*, int, int))
1074 1074000 0.76 6
BRegion::Support::miUnionNonO(BRegion*, clipping_rect*, clipping_rect*,
int, int)
648 648000 0.46 12 __mutex_lock
605 605000 0.43 6
BRegion::Support::miCoalesce(BRegion*, int, int)
465 465000 0.33 12 _kern_mutex_lock
446 446000 0.32 6
BRegion::Support::miSetExtents(BRegion*)
414 414000 0.29 12 __mutex_unlock
359 359000 0.25 12 _kern_mutex_unlock
259 259000 0.18 6
BRegion::Support::miIntersectO(BRegion*, clipping_rect*, clipping_rect*,
clipping_rect*, clipping_rect*, int, int)
225 225000 0.16 6
BRegion::Support::miSubtractO(BRegion*, clipping_rect*, clipping_rect*,
clipping_rect*, clipping_rect*, int, int)
208 208000 0.15 12
BPrivate::hoardHeap::findAvailableSuperblock(int, BPrivate::block*&,
BPrivate::processHeap*)
163 163000 0.12 12
BPrivate::threadHeap::malloc(unsigned long)
154 154000 0.11 12 memcpy
149 149000 0.11 12 free
130 130000 0.09 12 _kern_write_port_etc
111 111000 0.08 12
BPrivate::processHeap::free(void*)
107 107000 0.08 12 malloc
}}}
--
Ticket URL: <https://dev.haiku-os.org/ticket/1074#comment:40>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.