in reply to benchmark: user vs system

User time is time your process spends in userspace, executing unprivileged code. System time is the amount of time the kernel spends on your belhalf.

For example, if you multiply millions of numbers, you'll use tons of user time, but almost no system time. On the other hand, if you read many large files, you'll use a lot of system time but very little user time, since all I/O must go through the kernel.

A third time is the "wallclock" time, which also includes the time your process spends waiting, either for access to the CPU, or else for a system call to complete.

One way to get a feel for the difference is to run a system call tracer, like strace or truss. This will give you a log of every system call your process makes.