FreeBSD has ktrace, which is similar to strace but much more painful to use because it creates a binary trace file that you have to interpret in a second pass.

strace is also my primary performance optimization tool, which may seem strange, but a large percentage of performance problems can be tracked to too many read or write or other system calls.

strace also has facilities for tracking how long each system call took, and even summarizing the total amount of time spent per system call.