ブックマーク / i-beam.org (2)

  • 図解 Go Slice Tricks | Folioscope

    この記事はGo7 Advent Calendar 2019の記事です。 Go には JavaRuby などのモダン言語のような slice を操作する関数は用意されていません。 Go では built-in 関数のappend()やcopy() と for 構文を組み合わせることで、他の言語にあるような slice 操作を実装できます。 この記事ではそれぞれの slice 操作を図解で解説します。 元ネタは Go 公式 Wiki にあるGo SliceTricks - golang/go Wikiです。 Slice の連結 a = append(a, b...) コピー先 a にコピー元の b の全ての要素をコピーします。 連結後の長さが cap(a) を超える場合は、新たな slice が作成されて a、bともにコピーします。 以降はappend()のコピー先には十分なcapがある

    図解 Go Slice Tricks | Folioscope
  • JVMのヒープサイズとコンテナ時代のチューニング | Folioscope

    最近 JVM のヒープ領域とパラメータ、そしてコンテナの関係について調べてました。 案外まとまった情報が少なかったので簡単にまとめました。 Java のヒープサイズを設定 まずは Java のヒープサイズについて簡単なおさらいです。 番環境で Java アプリケーションを運用する上で、JVM のヒープサイズを決定するのは非常に大事なポイントです。 ヒープ領域の最大サイズを大きくすればガベージコレクション (GC) の回数は減らすことができますが、 必要以上に大きくしすぎると無駄にリソースを消費したり、OOM killer で OS にプロセスを終了させられます。 JVM が使用できるヒープサイズは、Java API の Runtime.getRuntime().maxMemory() で確認できます。 また java の起動オプションに -XX:+PrintFlagsFinal オプショ

  • 1