Skip to content

Instantly share code, notes, and snippets.

@misTrasteos
Last active December 21, 2021 18:00
Show Gist options
  • Save misTrasteos/64ede08830ecc474b8bdffbbf9e9ccc4 to your computer and use it in GitHub Desktop.
Save misTrasteos/64ede08830ecc474b8bdffbbf9e9ccc4 to your computer and use it in GitHub Desktop.
Compact Strings example in Java
jbang run --java-options="-XX:-CompactStrings" https://gist.github.com/misTrasteos/64ede08830ecc474b8bdffbbf9e9ccc4#file-compactstringsexample-java

imagen

jbang run --java-options="-XX:+CompactStrings" https://gist.github.com/misTrasteos/64ede08830ecc474b8bdffbbf9e9ccc4#file-compactstringsexample-java

imagen

Using Compact String allow more object allocation as their size is smaller

///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;
import java.util.List;
import java.util.LinkedList;
public class CompactStringsExample {
public static void main(String... args) {
List<String> strings = new LinkedList<String>();
while( args.length >= 0 )
strings.add( RandomStringUtils.randomAlphanumeric( 1_000 ) );
System.out.println( strings.size() );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment