Skip to content

Instantly share code, notes, and snippets.

View arturmkrtchyan's full-sized avatar

Artur Mkrtchyan arturmkrtchyan

View GitHub Profile
@arturmkrtchyan
arturmkrtchyan / AssemblyMain.java
Last active August 29, 2015 14:08
JIT: Run Java With PrintAssembly
public class AssemblyMain {
public static void main(String[] args) {
int number = 100000;
System.out.println("Calculating SUM of the squares of 1 to " + number);
long sum = sum(number);
System.out.println("SUM: " + sum);
}
@arturmkrtchyan
arturmkrtchyan / FunctionalPrime.java
Last active August 29, 2015 14:08
Functional vs. Imperative Programming
public boolean isPrime(final int number) {
return number > 1 &&
IntStream.rangeClosed(2, (int) Math.sqrt(number))
.noneMatch(index -> number % index == 0);
}
@arturmkrtchyan
arturmkrtchyan / build_jdk_9.sh
Last active August 29, 2015 14:10
Building OpenJDK 9 on Ubuntu
bash ./configure
make all
@arturmkrtchyan
arturmkrtchyan / BiasedLocking.java
Last active August 29, 2015 14:12
Uncontended Biased Locking
public class BiasedLocking {
private static final int LOOP_COUNT = 10000000; // 10 million
public static void main(final String[] args) {
incrementCounter();
}
public static void incrementCounter() {
final long startTime = System.currentTimeMillis();
@arturmkrtchyan
arturmkrtchyan / ObjectVsStruct.java
Created January 6, 2015 21:07
Java Off/On Heap Struct/Object Creation
import sun.misc.Cleaner;
import sun.misc.Unsafe;
import sun.nio.ch.DirectBuffer;
import java.lang.reflect.Field;
import java.nio.ByteBuffer;
// How to run:
// struct: javac ObjectVsStruct.java && java ObjectVsStruct struct
// object: javac ObjectVsStruct.java && java ObjectVsStruct object
@arturmkrtchyan
arturmkrtchyan / EnumSwitch.class
Last active August 29, 2015 14:13
JVM tableswitch vs lookupswitch
private static void enumSwitch();
Code:
0: getstatic #2 // Field DayOfWeek.FRIDAY:LDayOfWeek;
3: astore_0
4: iconst_0
5: istore_1
6: getstatic #3 // Field Switch$1.$SwitchMap$DayOfWeek:[I
9: aload_0
10: invokevirtual #4 // Method DayOfWeek.ordinal:()I
13: iaload
@arturmkrtchyan
arturmkrtchyan / ObjectHeader32.txt
Last active April 8, 2024 02:03
Java Object Header
|----------------------------------------------------------------------------------------|--------------------|
| Object Header (64 bits) | State |
|-------------------------------------------------------|--------------------------------|--------------------|
| Mark Word (32 bits) | Klass Word (32 bits) | |
|-------------------------------------------------------|--------------------------------|--------------------|
| identity_hashcode:25 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Normal |
|-------------------------------------------------------|--------------------------------|--------------------|
| thread:23 | epoch:2 | age:4 | biased_lock:1 | lock:2 | OOP to metadata object | Biased |
|-------------------------------------------------------|--------------------------------|--------------------|
|
@arturmkrtchyan
arturmkrtchyan / thread1.c
Last active August 29, 2015 14:14
POSIX pthreads
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
void *thread_function(void *arg) {
int i;
for ( i=0; i<20; i++ ) {
printf("Thread says hi!\n");
sleep(1);
}
@arturmkrtchyan
arturmkrtchyan / add_slaves.sh
Last active August 29, 2015 14:16
Hadoop Cluster Installation
10.64.200.48
10.64.200.49
10.64.200.50
10.64.200.51
@arturmkrtchyan
arturmkrtchyan / get_job_status.sh
Last active August 7, 2023 18:55
Apache Spark Hidden REST API
curl http://spark-cluster-ip:6066/v1/submissions/status/driver-20151008145126-0000