Skip to content

Speed up bst shell command #294

@BuildStream-Migration-Bot

Description

See original issue on GitLab
In GitLab by [Gitlab user @TheRealMichaelCatanzaro] on Mar 10, 2018, 19:13

bst shell is currently much too slow. It would be nice to aggressively attempt to speed things up. I know this is never going to be instantaneous, like jhbuild shell, but I hope we we can do a lot better here.

For instance:

$ bst shell --build core/epiphany.bst
[--:--:--][][] START   Loading pipeline
[00:00:00][][] SUCCESS Loading pipeline
[--:--:--][][] START   Resolving pipeline
[00:00:00][][] SUCCESS Resolving pipeline
[--:--:--][][] START   Resolving cached state
[00:01:35][][] SUCCESS Resolving cached state
[--:--:--][][] START   Staging dependencies
[--:--:--][????????][ main:core/epiphany.bst             ] WARNING Non-whitelisted overlaps detected

    Staged files overwrite existing files in staging area:
    /usr/bin/gtkdoc-check: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-depscan: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-fixxref: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-mkdb: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-mkhtml: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-mkman: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-mkpdf: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-rebase: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-scan: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdoc-scangobj: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/bin/gtkdocize: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/lib/cmake/GtkDoc/GtkDocConfig.cmake: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/lib/cmake/GtkDoc/GtkDocConfigVersion.cmake: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/lib/cmake/GtkDoc/GtkDocScanGObjWrapper.cmake: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/share/aclocal/gtk-doc.m4: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/share/gtk-doc/data/devhelp2.xsd: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/share/gtk-doc/data/devhelp2.xsl: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/share/gtk-doc/data/gtk-doc.flat.make: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    /usr/share/gtk-doc/data/gtk-doc.make: core-deps/gtk-doc.bst is not permitted to overlap other elements, order core-deps/gtk-doc.bst above base/base-configure.bst 
    Message contains 6766 additional lines

[00:00:12][][] SUCCESS Staging dependencies
[--:--:--][][] START   Integrating sandbox
[--:--:--][593e35e8][ main:base.bst                      ] STATUS  Running integration command

    ldconfig

[--:--:--][593e35e8][ main:base.bst                      ] STATUS  Running integration command

    PKGSYSTEM_ENABLE_FSYNC=0 update-mime-database /usr/share/mime

[--:--:--][593e35e8][ main:base.bst                      ] STATUS  Running integration command

    update-desktop-database -v

Search path is now: [/usr/local/share/applications, /usr/share/applications]
Could not create cache file in "/usr/local/share/applications": Error opening directory ?/usr/local/share/applications?: No such file or directory
File "/usr/share/applications/gtk3-widget-factory.desktop" lacks MimeType key
File "/usr/share/applications/gcr-prompter.desktop" lacks MimeType key
File "/usr/share/applications/python3.6.desktop" lacks MimeType key
File "/usr/share/applications/geoclue-where-am-i.desktop" lacks MimeType key
File "/usr/share/applications/geoclue-demo-agent.desktop" lacks MimeType key
File "/usr/share/applications/gtk3-demo.desktop" lacks MimeType key
File "/usr/share/applications/texdoctk.desktop" lacks MimeType key
File "/usr/share/applications/gtk3-icon-browser.desktop" lacks MimeType key
File "/usr/share/applications/python2.7.desktop" lacks MimeType key
[--:--:--][ec9dc658][ main:core-deps/glib.bst            ] STATUS  Running integration command

    glib-compile-schemas /usr/share/glib-2.0/schemas

Warning: Schema “org.gnome.crypto.pgp” has path “/desktop/gnome/crypto/pgp/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.locale” has path “/system/locale/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.proxy” has path “/system/proxy/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.proxy.http” has path “/system/proxy/http/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.proxy.https” has path “/system/proxy/https/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.proxy.ftp” has path “/system/proxy/ftp/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
Warning: Schema “org.gnome.system.proxy.socks” has path “/system/proxy/socks/”.  Paths starting with “/apps/”, “/desktop/” or “/system/” are deprecated.
[--:--:--][81d1654d][ main:core-deps/gdk-pixbuf.bst      ] STATUS  Running integration command

    gdk-pixbuf-query-loaders --update-cache

[--:--:--][0566cf06][ main:core-deps/gtk+-3.bst          ] STATUS  Running integration command

    for dir in /usr/share/icons/*; do
      if test -f $dir/index.theme; then
        gtk-update-icon-cache --quiet $dir
      fi
    done

[--:--:--][0566cf06][ main:core-deps/gtk+-3.bst          ] STATUS  Running integration command

    gtk-query-immodules-3.0 --update-cache

[00:00:14][][] SUCCESS Integrating sandbox
[--:--:--][][] START   Staging sources
[00:00:00][][] SUCCESS Staging sources
[--:--:--][????????][ main:core/epiphany.bst             ] STATUS  Running command

    bash --noprofile --norc -i

Here we spent:

  • 1m35s resolving cached state
  • 12s staging dependencies
  • 14s integrating sandbox

Looks like "resolving cached state" is clearly the first thing to focus on.

Metadata

Metadata

Assignees

No one assigned

    Labels

    optimizationMake BuildStream faster and use less resources

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions