article thumbnail

Faster remainders when the divisor is a constant: beating compilers and libdivide

Daniel Lemire

The division by a power of two ( / (2 N )) can be implemented as a right shift if we are working with unsigned integers, which compiles to single instruction: that is possible because the underlying hardware uses a base 2. Thus if 2 N / d has been precomputed, you can compute the division n/d as a multiplication and a shift. Can we do better?

C++ 279
article thumbnail

The Return of the Frame Pointers

Brendan Gregg

2005-2023: The winter of broken profilers However, the change was then applied to x86-64 (64-bit) as well, which had sixteen registers and didn't benefit so much from a seventeenth. Having done this before, it reminds me of CSS programming: you make a little change here and everything breaks, and you spend hours chasing your own tail.

Java 145
Insiders

Sign Up for our Newsletter

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Trending Sources

article thumbnail

SQL Server I/O Basics Chapter #2

SQL Server According to Bob

As ​​ the ​​ administrator of a SQL Server 2005 installation, ​​ you will find that ​​ visibility into ​​ the ​​ SQL Server ​​ I/O ​​ subsystem ​​ has been ​​ significantly increased.

Servers 40
article thumbnail

SQL Server On Linux: Forced Unit Access (Fua) Internals

SQL Server According to Bob

CSA ISO/IEC 9945-1:2005 (R2009) 3.375 Synchronized I/O Data Integrity Completion. Refer to the ISO documentation on file integrity for complete details: CSA ISO/IEC 9945-1:2005 (R2009) 3.376 Synchronized I/O File Integrity Completion. Linux may need similar utilities to control various hardware cache installations. Device Flush.

Servers 90
article thumbnail

Linux Load Averages: Solving the Mystery

Brendan Gregg

The oldest change in the entire Linux repo dates back to 2005, when Linus imported Linux 2.6.12-rc2, 90491 N|rnberg (Germany) Consulting+Networking+Programming+etc'ing 42. This, too, was a dead end. rc2, and this change predates that. kernel/sched.c.orig Fri Oct 29 10:31:11 1993 kernel/sched.c Yes, I'd say so. They aren't idle.

Latency 111