I noticed that the same exact build on i7-920 (4 CPUs) consumes ~15% more user CPU when run with -j 8 compared to -j 4.

Hyper-threading is enabled so top shows 8 CPUs.

Why would user time be higher in a  hyper-threaded run?
because it doesn't count actual instruction executed but - as name suggest - time.


with -j 8 it sums time of 8 pseudo-processors

single pseudo-processor ("half" of single core) is slower than full-processor.

The whole trick with hyperthreading is that it's less than half slower, as one "pseudo-processor" become full-processor every time that second "pseudo-processor" is stalled on memory access.

today memory access to DRAM means over hundred of CPU cycles. out of order execution can execute other instruction to some extent, but only "some".

even L3 cache access costs >>10 CPU cycles
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to