HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jvns
howcomputer
C2014–2014
jvns / howcomputer

howcomputer

how does a computer even (or: fun with profiling)

3Distinct people
3Mentions
0Explicit recommenders
54GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

how does a computer even (or: fun with profiling)

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 12:54:37 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by hour3 dated mentions

Observed mentions: 2014-05-13 08:30:15 UTC to 2014-05-13 19:33:19 UTC.

012014-05-13 08:00:00 UTC to 2014-05-13 09:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 13, 08:002014-05-13 09:00:00 UTC to 2014-05-13 10:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 10:00:00 UTC to 2014-05-13 11:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2014-05-13 11:00:00 UTC to 2014-05-13 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 12:00:00 UTC to 2014-05-13 13:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 13:00:00 UTC to 2014-05-13 14:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsMay 13, 13:002014-05-13 14:00:00 UTC to 2014-05-13 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 15:00:00 UTC to 2014-05-13 16:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 16:00:00 UTC to 2014-05-13 17:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 17:00:00 UTC to 2014-05-13 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 18:00:00 UTC to 2014-05-13 19:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2014-05-13 19:00:00 UTC to 2014-05-13 20:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 13, 19:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 13, 08:002014-05-13 08:00:00 UTC2014-05-13 09:00:00 UTC101
May 13, 09:002014-05-13 09:00:00 UTC2014-05-13 10:00:00 UTC000
May 13, 10:002014-05-13 10:00:00 UTC2014-05-13 11:00:00 UTC101
May 13, 11:002014-05-13 11:00:00 UTC2014-05-13 12:00:00 UTC000
May 13, 12:002014-05-13 12:00:00 UTC2014-05-13 13:00:00 UTC000
May 13, 13:002014-05-13 13:00:00 UTC2014-05-13 14:00:00 UTC000
May 13, 14:002014-05-13 14:00:00 UTC2014-05-13 15:00:00 UTC000
May 13, 15:002014-05-13 15:00:00 UTC2014-05-13 16:00:00 UTC000
May 13, 16:002014-05-13 16:00:00 UTC2014-05-13 17:00:00 UTC000
May 13, 17:002014-05-13 17:00:00 UTC2014-05-13 18:00:00 UTC000
May 13, 18:002014-05-13 18:00:00 UTC2014-05-13 19:00:00 UTC000
May 13, 19:002014-05-13 19:00:00 UTC2014-05-13 20:00:00 UTC101

What Hacker News says

3 sources
Interesting investigation! I had an experiment with getting the Rust compiler to vectorise things itself, and it seems LLVM does a pretty good job automatically, e.g. on my computer (x86-64), running `rustc -O bytesum.rs` optimises the core of the addition: fn inner(x: &[u8]) -> u8 { let mut s = 0; for b in x.iter() { s += *b; } s } to .LBB0_6: movdqa %xmm1, %xmm2 movdqa %xmm0, %xmm3 movdqu -16(%rsi), %xmm0 movdqu (%rsi), %xmm1 paddb %xmm3, %xmm0 paddb %xmm2, %xmm1 addq $32, %rsi addq $-32, %rdi jne .LBB0_6 I can convince clang to automatically vectorize the inner loop in [1] to equivalent code (by passing -O3), but I can't seem to get GCC to do anything but a byte-by-byte tranversal. [1]: https://github.com/jvns/howcomputer/blob/master/bytesum.c
In Computers are fast
I like the "free" style of the article. Here is another conclusion: In my professional life I have heard many, many excuses in the name of performance. "We don't need the third normal form, after all, normalized databases are less performant, because of the joins". Optimizing for performance should not mean to make it just as fast as it could possibly run, but to make it just fast enough. Julia's article shows a good example for this. Of course, the goal appears to generate a feeling of what tends to make a program fast and slow and get a feeling for how slow it will be or how fast it can get; yet I'd like to point out that this... https://github.com/jvns/howcomputer/blob/master/bytesum_intr... ... might be 0.1 Seconds faster than the original code when started as "already loaded into ram" which she claims runs at 0.6 seconds. Yet this la
Read the rest
st piece of code is way more complicated and hard to read. Code like this Line 11: __m128i vk0 = _mm_set1_epi8(0); might be idiomatic, fast and give you a great sense of mastery, but you can't even pronounce it and it it's purpose does not become clear in any way. Writing the code this way may make it faster, but that makes it 1000x harder to maintain. I'd rather sacrifice 0.1 seconds running time and improve the development time by 3 days instead.
In Computers are fast

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.