** Description changed:

  $ time apt-mark showauto >/dev/null
  
- real  0m0.587s
- user  0m0.552s
- sys   0m0.016s
+ real  0m0,620s
+ user  0m0,557s
+ sys   0m0,052s
  
  When I run the command first time, it is even much slower.
  
- I could do the job in fraction of a time using awk in POSIX shell
- script:
+ I could do the job* in fraction of a time using awk in POSIX shell script
+ (name it ./apt-mark-showauto.sh):
  
+ #!/bin/sh
  auto_file='/var/lib/apt/extended_states'
- eval $(apt-config shell auto_file Dir::State::extended_states/f)
  awk '/^Package:/ {
        pkg=$2
-       getline; arch=$2
-       getline
-       if($2==1) print pkg ":" arch
- }' "$auto_file" | CL_ALL=C sort -u
+       while (getline > 0 && $0) {
+               if ($1 == "Auto-Installed:") {
+                       if ($2==1) print pkg
+                       break
+               }
+       }
+ }' "$auto_file"
  
- real  0m0.019s
- user  0m0.008s
- sys   0m0.000s
+ $ time ./apt-mark-showauto.sh >/dev/null
  
- That prints architecture for every package and shows entries in slightly
- different order, though. And the file could be out of date showing
- packages that are not installed?!?
+ real  0m0,005s
+ user  0m0,002s
+ sys   0m0,004s
+ 
+ Tested in Ubuntu 20.04.
+ 
+ *) The script omits Architecture information, though. And should apt-
+ config be queried for the extended_states file path?
  
  Similarly
  
- apt show <pkg>
+ apt-cache show <pkg>
  
  is slow. (It also shows whether a package is manually or automatically
  installed.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: apt 1.0.1ubuntu2.17
  ProcVersionSignature: Ubuntu 4.4.0-92.115~14.04.1-generic 4.4.76
  Uname: Linux 4.4.0-92-generic x86_64
  ApportVersion: 2.14.1-0ubuntu3.25
  Architecture: amd64
  CurrentDesktop: XFCE
  Date: Sat Aug 26 12:59:00 2017
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2014-09-21 (1070 days ago)
  InstallationMedia: Ubuntu-Studio 14.04.1 LTS "Trusty Tahr" - Release amd64 
(20140722.1)
  SourcePackage: apt
  UpgradeStatus: No upgrade log present (probably fresh install)
  modified.conffile..etc.cron.daily.apt: [modified]
  modified.conffile..etc.kernel.postinst.d.apt.auto.removal: [modified]
  mtime.conffile..etc.cron.daily.apt: 2017-05-03T10:27:27.617839
  mtime.conffile..etc.kernel.postinst.d.apt.auto.removal: 
2017-06-01T14:39:39.236080

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1713219

Title:
  'apt-mark showauto' and 'apt-cache show' is slow

Status in apt package in Ubuntu:
  Triaged

Bug description:
  $ time apt-mark showauto >/dev/null

  real  0m0,620s
  user  0m0,557s
  sys   0m0,052s

  When I run the command first time, it is even much slower.

  I could do the job* in fraction of a time using awk in POSIX shell script
  (name it ./apt-mark-showauto.sh):

  #!/bin/sh
  auto_file='/var/lib/apt/extended_states'
  awk '/^Package:/ {
        pkg=$2
        while (getline > 0 && $0) {
                if ($1 == "Auto-Installed:") {
                        if ($2==1) print pkg
                        break
                }
        }
  }' "$auto_file"

  $ time ./apt-mark-showauto.sh >/dev/null

  real  0m0,005s
  user  0m0,002s
  sys   0m0,004s

  Tested in Ubuntu 20.04.

  *) The script omits Architecture information, though. And should apt-
  config be queried for the extended_states file path?

  Similarly

  apt-cache show <pkg>

  is slow. (It also shows whether a package is manually or automatically
  installed.

  ProblemType: Bug
  DistroRelease: Ubuntu 14.04
  Package: apt 1.0.1ubuntu2.17
  ProcVersionSignature: Ubuntu 4.4.0-92.115~14.04.1-generic 4.4.76
  Uname: Linux 4.4.0-92-generic x86_64
  ApportVersion: 2.14.1-0ubuntu3.25
  Architecture: amd64
  CurrentDesktop: XFCE
  Date: Sat Aug 26 12:59:00 2017
  EcryptfsInUse: Yes
  InstallationDate: Installed on 2014-09-21 (1070 days ago)
  InstallationMedia: Ubuntu-Studio 14.04.1 LTS "Trusty Tahr" - Release amd64 
(20140722.1)
  SourcePackage: apt
  UpgradeStatus: No upgrade log present (probably fresh install)
  modified.conffile..etc.cron.daily.apt: [modified]
  modified.conffile..etc.kernel.postinst.d.apt.auto.removal: [modified]
  mtime.conffile..etc.cron.daily.apt: 2017-05-03T10:27:27.617839
  mtime.conffile..etc.kernel.postinst.d.apt.auto.removal: 
2017-06-01T14:39:39.236080

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1713219/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to