void doTrial()

in src/main/java/org/apache/datasketches/characterization/memory/HeapUtf8SpeedProfile.java [40:89]


  void doTrial(final TrialStats stats) {
    final int[] cpArr = stats.cpArr;
    final int cpArrLen = cpArr.length;

    randCP.fillCodePointArray(cpArr);
    final String javaStr = new String(cpArr, 0, cpArrLen); //Java String reference //GG-U
    final int javaStrLen = javaStr.length();
    final byte[] javaByteArr;
    final int javaByteArrLen;
    final WritableMemory wMem;
    long startTime;
    long stopTime;

    //measure Java encode time
    startTime = System.nanoTime();
    javaByteArr = javaStr.getBytes(UTF_8); //Java byteArr reference //GG-U
    stopTime = System.nanoTime();
    stats.javaEncodeTime_nS = stopTime - startTime;

    javaByteArrLen = javaByteArr.length;

    //measure Java decode time
    startTime = System.nanoTime();
    final String javaStr2 = new String(javaByteArr, UTF_8);
    stopTime = System.nanoTime();
    stats.javaDecodeTime_nS = stopTime - startTime;

    checkStrings(javaStr2, javaStr);

    //prepare Memory measurements
    wMem = WritableMemory.allocate(javaByteArrLen); //GG
    final StringBuilder sb = new StringBuilder(javaStrLen); //GG

    //measure Memory encode time
    startTime = System.nanoTime();
    wMem.putCharsToUtf8(0, javaStr);
    stopTime = System.nanoTime();
    stats.memEncodeTime_nS = stopTime - startTime;

    checkMemBytes(Memory.wrap(javaByteArr), wMem); //GG

    //measure Memory decode time
    startTime = System.nanoTime();
    wMem.getCharsFromUtf8(0, javaByteArrLen, sb);
    stopTime = System.nanoTime();
    stats.memDecodeTime_nS = stopTime - startTime;

    checkStrings(sb.toString(), javaStr); //GG-U

  }