ccr-tools / chaser

Next generation community package management for Chakra.
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

Improve update speed #1

Open rshipp opened 8 years ago

rshipp commented 8 years ago
[george@nayaka ~]$ time ccr -Syu --ccronly
:: Synchronizing ccr database...
 ccr                                      113  113 [###################################################################################################################################################################################] 100%
:: Starting full ccr upgrade...

Ccr Targets    (12): lib32-libpng12 docker fish nodejs-bower perl-test-exception popcorntime-bin python2-virtualenv python3-inflection ruby-bundler tcpdump teamviewer the_silver_searcher

Proceed with installation? [Y/n] ^C

real    0m34.451s
user    0m6.947s
sys     0m2.273s
[george@nayaka ~]$ time chaser update
Updates: docker-1.10.0-1  fish-2.2.0-3  nodejs-bower-1.4.1-1  perl-test-exception-0.40-1  popcorntime-bin-0.3.8.2-1  python2-virtualenv-1.11.4-1  python3-inflection-0.3.1-2  ruby-bundler-1.11.2-1  tcpdump-4.7.3-1  teamviewer-11.0.53191-2  the_silver_searcher-0.30.0-1
Continue with installation? [Y/n] ^CTraceback (most recent call last):
  File "/usr/bin/chaser", line 9, in <module>
    load_entry_point('chaser==0.8.1', 'console_scripts', 'chaser')()
  File "/usr/lib/python3.4/site-packages/chaser/__init__.py", line 52, in main
    args.func(args)
  File "/usr/lib/python3.4/site-packages/chaser/chaser.py", line 139, in update
    response = prompt.prompt(_("Continue with installation?"))
  File "/usr/lib/python3.4/site-packages/chaser/prompt.py", line 19, in prompt
    response = user_input("{message} [{y}/{n}] ".format(message=message, y=yes, n=no))
  File "/usr/lib/python3.4/site-packages/chaser/prompt.py", line 6, in user_input
    return input(message)
KeyboardInterrupt

real    2m11.454s
user    0m5.520s
sys     0m0.300s
rshipp commented 8 years ago
(ccr)[george@nayaka chaser] (master): time chaser update
Updates: docker-1.10.2-1  fish-2.2.0-3  nodejs-bower-1.4.1-1  perl-test-exception-0.40-1  popcorntime-bin-0.3.8.2-1  python2-virtualenv-1.11.4-1  python3-inflection-0.3.1-2  ruby-bundler-1.11.2-1  tcpdump-4.7.3-1  the_silver_searcher-0.30.0-1
Continue with installation? [Y/n] ^CTraceback (most recent call last):
  File "/home/george/.virtualenvs/ccr/bin/chaser", line 9, in <module>
    load_entry_point('chaser==0.8.1', 'console_scripts', 'chaser')()
  File "/data/george/dev/chaser/chaser/__init__.py", line 52, in main
    args.func(args)
  File "/data/george/dev/chaser/chaser/chaser.py", line 139, in update
    response = prompt.prompt(_("Continue with installation?"))
  File "/data/george/dev/chaser/chaser/prompt.py", line 19, in prompt
    response = user_input("{message} [{y}/{n}] ".format(message=message, y=yes, n=no))
  File "/data/george/dev/chaser/chaser/prompt.py", line 6, in user_input
    return input(message)
KeyboardInterrupt

real    0m18.023s
user    0m1.290s
sys     0m0.057s
rshipp commented 8 years ago

Fixed in https://github.com/ccr-tools/python-ccr/commit/20f0c21dbc8846d67d50e37c3ca57ffc9263a248

refola commented 5 years ago

Can this be reopened? I have 8 CCR packages installed and chaser update is still taking much longer than ccr -Syu --ccronly.

Here's a short script I made for getting results from several runs at once. (My current network connection is flaky, so timing each command once wouldn't give very reliable results.) Out of 30 tests pairs, 25 of them were faster with ccr. Also, ccr had a minimum time of 0.869s (and two other runs under 1s) vs chaser's minimum of 6.274s (slower than 23 of ccr's runs).

(Sorry for putting the walls of text in the comment; attachments weren't working for me.)

#!/bin/bash
# Make a table of interleaved `ccr` and `chaser` update timings
export TIMEFORMAT="%Es" # only show seconds of elapsed time
fmt='%5s %7s %7s\n' # table format widths
printf "$fmt" 'test#' ccr chaser # header
t() { (time "$@" &>/dev/null) 2>&1; } # get just a command's time
for i in {01..30}; do
    printf "$fmt" $i "$(t ccr -Syu --ccronly)" "$(t chaser update)"
done
test#     ccr  chaser
   01  3.010s  6.682s
   02  6.178s 12.826s
   03  3.881s  8.157s
   04  5.333s 10.919s
   05 19.489s 14.457s
   06 20.066s 16.753s
   07 23.215s  7.918s
   08  3.071s 20.309s
   09  5.137s 35.885s
   10 25.760s  7.628s
   11  3.197s  6.806s
   12  1.909s 12.152s
   13  2.406s 18.724s
   14 10.109s 29.502s
   15  1.711s  8.349s
   16  6.266s  9.639s
   17  2.011s 21.345s
   18  6.366s  8.502s
   19  6.770s  6.721s
   20  1.252s  6.274s
   21  2.081s 13.155s
   22  0.951s  8.222s
   23  1.567s  7.094s
   24  3.414s  9.560s
   25  1.522s  8.717s
   26  0.869s  9.539s
   27  3.314s  7.486s
   28  1.690s  6.570s
   29  0.901s  7.797s
   30  3.387s  9.120s
rshipp commented 5 years ago

Hi, thanks for the heads up. I'm guessing the URL just needs updated to point to the new domain. I've opened a PR for this, but I'm not sure who manages this these days... maybe @totte knows? You might want to open an issue on the Chakra bugtracker instead to get more visibility - I think this is the place to ask for an update of the 'python-ccr' package.

If you can find someone willing to update the Chakra package, I'm happy to take care of whatever needs updating on the python-ccr side and tag a new version for them.