ls calls time() many more times than necessary
Investigating why my machine was reporting such a high number of sycalls, I stumbled across this in ls.c
rep->lat.tv_sec = time(NULL);
rep->lct.tv_sec = time(NULL);
rep->lmt.tv_sec = time(NULL);
For every file, ls calls time() 3 times, and only does so to ensure the values exist - the actual time here is arbitrary, and would normally be replaced by the times from the stat structure gotten from the file.
Removing those time() calls would make ls quicker, and reduce system load.