Web lists-archives.com

Re: Local system program analytics

Hash: SHA1

On Wed, Jul 11, 2018 at 07:18:55AM -0400, David Maulik wrote:
> Is there any program that can show me the programs on my system
> I use the most?

Define "use most".

OK, OK. This was a snotty answer, but there's something behind
it :-)

The system has a very different view of "using" than you have:
it can count how often a binary is invoked. It can measure
for how long a binary runs (init is started just once every
time you start your computer, but runs all the time while your
computer is up, to name one extreme example. Likewise a database
server or a web server. If you're a command line user, "ls"
will be a binary you are invoking lots of times during one session;
a shell, or Perl, or Python will be used innumerable times by
other programs. On the other extreme, there will be libraries
you might never have heard of (libc, libssl, watever) without
which many or most of your programs won't run).

To give a more specific answer -- if you are a heavy shell user,
your shell history might give you a hint; otherwise, you'll have
to ask the kernel. I don't think you'll find a ready-made solution,
but there are many kernel instrumentation approaches which might
be a building block in your quest's solution. To get a more
concrete idea, you might look into System Tap [1]; you would
select, e.g. the exec family of system calls (which start a
binary) and then run some statistics on them (note: not that
I'm proposing to *do* this -- rather to look into it to gain
insights which might help you to understand the problem space
you are trying to cover. As a collateral, and as so often, you
will learn a lot of other things :)


[1] https://en.wikipedia.org/wiki/SystemTap
- -- tomás
Version: GnuPG v1.4.12 (GNU/Linux)