Skip to content

Instantly share code, notes, and snippets.

View misTrasteos's full-sized avatar

Álvar Torres misTrasteos

  • Madrid, Spain
View GitHub Profile
# APT
## Package version before installing it
```
apt list azure-cli
Listing... Done
azure-cli/bullseye 2.33.1-1~bullseye all
N: There are 9 additional versions. Please use the '-a' switch to see them.
apt list -a azure-cli
Listing... Done
@misTrasteos
misTrasteos / InternStringsExample.java
Last active January 26, 2022 16:11
Java Intern Strings Example
///usr/bin/env jbang "$0" "$@" ; exit $?
import java.util.List;
import java.util.LinkedList;
public class InternStringsExample {
public static void main(String... args) throws Exception {
List<String> strings = new LinkedList<String>();
@misTrasteos
misTrasteos / AnotherMemoryLeak.java
Last active December 29, 2021 22:30
Simple Memory Leak in Java
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.apache.commons:commons-lang3:3.12.0
//JAVA_OPTIONS -XX:-UseAdaptiveSizePolicy
//JAVA_OPTIONS -Xms16m -Xmx16m
//JAVA_OPTIONS -XX:NewSize=3m -XX:MaxNewSize=3m -XX:SurvivorRatio=1
//JAVA_OPTIONS -XX:MaxTenuringThreshold=5
//JAVA_OPTIONS -Xlog:gc*
//JAVA_OPTIONS -XX:+UseSerialGC
@misTrasteos
misTrasteos / CleanerAPIAutoCloseableExample.java
Last active December 27, 2021 13:27
Java Cleaner API with AutoCloseable example
//JAVA_OPTIONS -Xms8m -Xmx8m -XX:+UseSerialGC
//JAVA_OPTIONS -XX:-DisableExplicitGC
/// https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ref/Cleaner.html
import java.lang.AutoCloseable;
import java.lang.ref.Cleaner;
public class CleanerAPIAutoCloseableExample{
@misTrasteos
misTrasteos / CompactStringsExample.java
Last active December 21, 2021 18:00
Compact Strings example in Java
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.apache.commons:commons-lang3:3.12.0
//JAVA_OPTIONS -Xms128m -Xmx128m
//JAVA_OPTIONS -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC
//JAVA_OPTIONS -XX:+HeapDumpOnOutOfMemoryError
import org.apache.commons.lang3.RandomStringUtils;
@misTrasteos
misTrasteos / README.md
Last active December 21, 2021 17:42
String deduplication Example in Java
jbang run --java-options="-XX:-UseStringDeduplication" https://gist.github.com/misTrasteos/225ca2f29996a20f88c8ddf0be3cd3b2#file-stringdeduplicationexample-java

Same number of String and char[] objects

imagen

jbang run --java-options="-XX:+UseStringDeduplication" https://gist.github.com/misTrasteos/225ca2f29996a20f88c8ddf0be3cd3b2#file-stringdeduplicationexample-java
///usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.openjdk.jol:jol-core:0.16
import org.openjdk.jol.info.ClassLayout;
import org.openjdk.jol.info.GraphLayout;
public class JolTest {
static class Patient1{
@misTrasteos
misTrasteos / README.md
Last active December 16, 2021 20:44
Java Stack Allocation Vs Heap Allocation of primitive/object example/test/PoC

Heap Allocation

jbang run https://gist.github.com/misTrasteos/e616b87452b215db116448216da59636\#file-stackorheapallocation-java

You will get a java.lang.OutOfMemoryError: Java heap space. As we are using no-op Epsilon GC and we are allocation plenty of Integer objects in the heap.

Stack Allocation

jbang run -D=PRIMITIVE https://gist.github.com/misTrasteos/e616b87452b215db116448216da59636\#file-stackorheapallocation-java
//usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS io.quarkus:quarkus-resteasy:2.5.1.Final
//DEPS io.quarkus:quarkus-resteasy-jackson:2.5.1.Final
//JAVAC_OPTIONS -parameters
//JAVA_OPTIONS -Djava.util.logging.manager=org.jboss.logmanager.LogManager
import io.quarkus.runtime.Quarkus;
import javax.enterprise.context.ApplicationScoped;
@misTrasteos
misTrasteos / WeakHashMapPoc.java
Last active December 8, 2021 00:12
WeakHashMap JVM Java Example
///usr/bin/env jbang "$0" "$@" ; exit $?
//JAVA_OPTIONS -Xms32m -Xmx32m -Xlog:gc* -XX:+UseSerialGC
/// -XX:+HeapDumpBeforeFullGC
/// jbang run -D=WEAK WeakHashMapPoc.java for infinite execution as weak references are collected before an OOO
/// jbang run -D=STRONG -D=WEAK WeakHashMapPoc.java OOO even using a WeakHashMap, as keys are strongly referenced
/// jbang run WeakHashMapPoc.java for an OOO as simple Map keys are strongly referenced