I think it's fair to say that the IO path for fossil is
> considerably slower than the IO path for kernel-based file systems in
> Linux: slower as in multiples of 10, not multiples. There's a fair
> amount of copying, allocation, and bouncing in and out of the kernel,

for common applications you'd certainly hope that linux is
many times faster than some systems, because it's loading things like this:

% size *
   text    data     bss     dec     hex filename
44,520,643       105232  350084 44975959        2ae4757 chrome
   9527     472       8   10007    2717 chrome-sandbox
2,049,594         12784 1089440 3151818  3017ca libffmpegsumo.so
11,711,965       221500  192368 12125833         b90689 libgcflashplayer.so
18,376,687       122092   96344 18595123        11bbd33 libpdf.so

% file chrome
chrome: i386 ELF executable

is it statically linked, i wonder? no, all that comes attached to this:

% ldd chrome
        linux-gate.so.1 =>  (0x00c08000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00a2d000)
        libdl.so.2 => /lib/libdl.so.2 (0x0050c000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x0089a000)
        libXss.so.1 => /usr/lib/libXss.so.1 (0x0076e000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00835000)
        librt.so.1 => /lib/librt.so.1 (0x00110000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00119000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00eea000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00eae000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x004e9000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00510000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00552000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00c92000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x004f5000)
        libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00689000)
        libnss3.so.1d => /usr/lib/libnss3.so.1d (0x008a4000)
        libnssutil3.so.1d => /usr/lib/libnssutil3.so.1d (0x00865000)
        libsmime3.so.1d => /usr/lib/libsmime3.so.1d (0x00605000)
        libplc4.so.0d => /usr/lib/libplc4.so.0d (0x004fa000)
        libnspr4.so.0d => /usr/lib/libnspr4.so.0d (0x00d5c000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0062a000)
        libz.so.1 => /lib/libz.so.1 (0x009d7000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00644000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00772000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x007e9000)
        libpng12.so.0 => /lib/libpng12.so.0 (0x0080a000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0x009ec000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00674000)
        libcups.so.2 => /usr/lib/libcups.so.2 (0x00b4a000)
        libgcrypt.so.11 => /lib/libgcrypt.so.11 (0x00b94000)
        libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00758000)
        libasound.so.2 => /usr/lib/libasound.so.2 (0x00f81000)
        libexpat.so.1 => /lib/libexpat.so.1 (0x00c09000)
        libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x00845000)
        libdbus-1.so.3 => /lib/libdbus-1.so.3 (0x00c30000)
        libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x004ff000)
        libXtst.so.6 => /usr/lib/libXtst.so.6 (0x00503000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x21b78000)
        libm.so.6 => /lib/libm.so.6 (0x00c6c000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0087e000)
        libc.so.6 => /lib/libc.so.6 (0x1bf3d000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00d27000)
        /lib/ld-linux.so.2 (0x00dfe000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x0076a000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0x009b5000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x009c3000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x009cb000)
        libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x0082f000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00e88000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00cd4000)
        libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x0c8cc000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00cef000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00a1d000)
        libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00d90000)
        libxcb-shm.so.0 => /usr/lib/libxcb-shm.so.0 (0x00a21000)
        libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00a25000)
        libpcre.so.3 => /lib/libpcre.so.3 (0x00e1c000)
        libplds4.so => /usr/lib/libplds4.so (0x00d15000)
        libORBit-2.so.0 => /usr/lib/libORBit-2.so.0 (0x19467000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00e51000)
        libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0x06660000)
        libavahi-common.so.3 => /usr/lib/libavahi-common.so.3 (0x00d19000)
        libavahi-client.so.3 => /usr/lib/libavahi-client.so.3 (0x00d41000)
        libgpg-error.so.0 => /lib/libgpg-error.so.0 (0x00d51000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00d56000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00df0000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x00e8e000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x12d2b000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x015b3000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00df6000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00e80000)
        libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x00dfa000)
        libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0x00ec7000)

Reply via email to