Failure Sharing

Bootup your energy with sharing failure.

読書感想:Java Performance Story in Korean language (Chapter 1 ~ 4)

f:id:woosyume:20181030182141p:plain

01. デザインパターンについて

開発とメンテナンスを考えて、いくつかのデザインパターンを使う必要がある。 筆者は以下のパタンをおすすめしてる。

Business Deligate
Session Facade
Data Access Object

Connection with DB

Service Locator ⭐️
Transfer Object

詳細については、別の投稿で扱う。


個人的にはこれも勉強したい

Value List Handler

データ照会を処理して、結果を臨時的に保存。必要な時返す。

02. アプリケーションの性能計測

System class
  1. currentTimeMills()
  2. nanoTime() : JDK 5.0⬆️、測定用として作られたのメソッド → 日付が必要だったら、使えない。
Libraries
  1. JMH
  2. Caliper 3. JUnitPerf : for JUnit
  3. JUnitBench : for JUnit
  4. ContiPerf : for JUnit

今ちょうどJUnitめちゃめちゃ使ってるので、これもあとで調べてみよう。

03. Stringについて

StringBuffer, StringBuilderがおすすめ。 なぜかというと、Stringはimmutableなので、毎回新しいインスタンスを作る。それは結局負荷に繋がりる。

StringBuffer, StringBuilderは、インスタンスを生成せずに、サイズを増加しながら値をたす。 その中で、BufferはThreadSafeなので、スレッドがあるかどうかによって分けて使ったらいい。

04. Collection / Map

例えば、TreeSet, HashSetとか性能の差は多少あるけど、 数万回以上のループに入らない限り、一般的なウェブ開発の時には、目的にあうものを使うのが望ましい。