[[!meta copyright="Copyright © 2010, 2011, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] *Performance analysis* ([[!wikipedia Performance_analysis desc="Wikipedia article"]]) deals with analyzing how computing resources are used for completing a specified task. [[Profiling]] is one relevant tool. In [[microkernel]]-based systems, there is generally a considerable [[RPC]] overhead. In a multi-server system, it is non-trivial to implement a high-performance [[I/O System|community/gsoc/project_ideas/disk_io_performance]]. When providing [[faq/POSIX_compatibility]] (and similar interfaces) in an environemnt that doesn't natively implement these interfaces, there may be a severe performance degradation. For example, in this [[`fork` system call|/glibc/fork]]'s case. [[Unit_testing]] can be used for tracking performance regressions. --- * [[Degradation]] * [[fork]] * [[IPC_virtual_copy]] * [[microbenchmarks]] * [[microkernel_multi-server]] * [[gnumach_page_cache_policy]] * [[metadata_caching]] --- # IRC, freenode, #hurd, 2012-07-05 the more i study the code, the more i think a lot of time is wasted on cpu, unlike the common belief of the lack of performance being only due to I/O ## IRC, freenode, #hurd, 2012-07-23 there are several kinds of scalability issues iirc, i found some big locks in core libraries like libpager and libdiskfs but anyway we can live with those in the case i observed, ext2fs, relying on libdiskfs and libpager, scans the entire file list to ask for writebacks, as it can't know if the pages are dirty or not the mistake here is moving part of the pageout policy out of the kernel so it would require the kernel to handle periodic synces of the page cache braunr: as for big locks: considering that we don't have any SMP so far, does it really matter?... antrik: yes we have multithreading there is no reason to block many threads while if most of them could continue -while so that's more about latency than throughput? considering sleeping/waking is expensive, it's also about throughput currently, everything that deals with sleepable locks (both gnumach and the hurd) just wake every thread waiting for an event when the event occurs (there are a few exceptions, but not many) ouch