code: public ChronicleMapBuilder<K, V> entryAndValueOffsetAlignment(int alignment) {
          if (alignment <= 0) {
              throw new IllegalArgumentException("Alignment should be positive integer, " +
                      alignment + " given");
          }
          if (!isPowerOf2(alignment)) {
              throw new IllegalArgumentException("Alignment should be a power of 2, " + alignment +
                      " given");
          }
          if (Jvm.isArm() && alignment < 8)
              return this;
          this.alignment = alignment;
          return this;
      }
docs: Configures alignment of address in memory of entries and independently of address in memory
  of values within entries ((i. e. final addresses in native memory are multiples of the given
  alignment) for ChronicleMaps, created by this builder.
  <p>
  <p>Useful when values of the map are updated intensively, particularly fields with volatile
  access, because it doesn't work well if the value crosses cache lines. Also, on some
  (nowadays rare) architectures any misaligned memory access is more expensive than aligned.
  <p>
  <p>If values couldn't reference off-heap memory (i. e. it is not {@link Byteable} or a value
  interface), alignment configuration makes no sense.
  <p>
  <p>Default is {@link ValueModel#recommendedOffsetAlignment()} if the value type is a value
  interface, otherwise 1 (that is effectively no alignment) or chosen heuristically (configure
  explicitly for being sure and to compare performance in your case).
  
  @param alignment the new alignment of the maps constructed by this builder
  @return this builder back
  @throws IllegalStateException if values of maps, created by this builder, couldn't reference
  off-heap memory