Skip to content

Instantly share code, notes, and snippets.

View PerWiklander's full-sized avatar

Per Wiklander PerWiklander

  • Wiklander Consulting
  • Stockholm, Sweden
View GitHub Profile
@gustavoamigo
gustavoamigo / Rubyist.scala
Last active May 23, 2018 10:30
Ruby like postfix conditionals with Scala
implicit class RicherConditional[T](ifTrue: => T ) {
def unless(condition: Boolean) = new WhenOrOtherwise(!condition, ifTrue)
def when(condition: Boolean) = new WhenOrOtherwise(condition, ifTrue)
}
class WhenOrOtherwise[T] (condition: Boolean, ifTrue: => T) {
def otherwise(ifOtherwise: => T) = if(condition) ifTrue else ifOtherwise
def otherwiseNone = if(condition) Some(ifTrue) else None
}
@jboner
jboner / latency.txt
Last active November 18, 2024 08:23
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD