Skip to content

Instantly share code, notes, and snippets.

@laskfla
laskfla / annotated_maps
Created March 27, 2016 12:46 — forked from rednaxelafx/annotated_maps
another memory layout example. JDK6u25 on AMD64 Ubuntu 10.10
List of threads:
4210 Thread-4
4208 WatcherThread
4209 Timer-0
4207 Low Memory Detector
4206 C2 CompilerThread1
4205 C2 CompilerThread0
4204 Signal Dispatcher
4203 Finalizer
@laskfla
laskfla / latency.txt
Created April 23, 2017 12:56 — forked from jboner/latency.txt
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers
--------------------------
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
@laskfla
laskfla / DirectMemorySize.java
Created January 14, 2018 13:44 — forked from rednaxelafx/DirectMemorySize.java
An Serviceability-Agent based tool to see stats of NIO direct memory, as an alternative on JDK6 without JMX support for direct memory monitoring. Only works on JDK6; to work on JDK7 will need some tweaking because static variables are moved to Java mirror
import java.io.*;
import java.util.*;
import sun.jvm.hotspot.memory.*;
import sun.jvm.hotspot.oops.*;
import sun.jvm.hotspot.debugger.*;
import sun.jvm.hotspot.runtime.*;
import sun.jvm.hotspot.tools.*;
import sun.jvm.hotspot.utilities.*;
public class DirectMemorySize extends Tool {
@laskfla
laskfla / 6.4&6.5 Queries with For and Translation of For.scala
Last active March 3, 2018 13:59
This is the learning note regading the "Functional Programming Principles in Scala"[Coursera ] by Martin Odersky.
########Queries with For#######
//the insight from Sir.M
For expression is very similar to the common operations of query language for database.
For has "if" for filter and nested form "for" expression is similar to the join in database.
(The collection returned could be then reduced/aggregated ,deduped/distinct , etc)
For example: Suppose that we have a database books, represented as a list of books .
case class Book(title : String, authors : List[String])
//the argument could be passed in "parameter name = value" form
@laskfla
laskfla / MonBuffers.java
Created June 19, 2018 06:29 — forked from t3rmin4t0r/MonBuffers.java
Monitoring direct memory in the JVM (from https://blogs.oracle.com/alanb/entry/monitoring_direct_buffers, adapted for JDK8)
import java.io.File;
import java.util.*;
import java.lang.management.BufferPoolMXBean;
import java.lang.management.ManagementFactory;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.*;
import com.sun.tools.attach.VirtualMachine; // Attach API