decadence

個人のメモ帳

Elixirの静的型チェック

Elixir再履修

JVMはすごいけど限界もあるって最近感じてて、process単位でのGCが行えるBEAM系言語としてElixir触ってる*1

前に一度触ったけど文法とか飛んでたしElixir再履修。

エディタ設定とか依存管理とか予め言語開発側が用意してくれているので助かる。ただ動的型付け言語なので、その辺りは後々困るのは確実。Erlangには静的型チェックの仕組みとしてdialyzerがあり、Elixirでも利用可能なのでそのあたりを先に押さえる。

*1:高級言語しか触ってなくて相変わらずダメだ

続きを読む

JMX Example

JMX 見るだけじゃなくて、監視したい項目を自分で作れるように小さいサンプル

codes

  • interface: MBeanを末尾につける
public interface SampleValueMBean {
    void setMessage(String msg);
    String getMessage();
    void printMessage();
}
  • implementation
public class SampleValue implements SampleValueMBean {
    private String message = "";
    @Override
    public void setMessage(String msg) {
        this.message = msg;
    }
    @Override
    public String getMessage() {
        return message;
    }
    @Override
    public void printMessage() {
        System.out.println("printMessage = " + message);
    }
}
  • main
MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
SampleValueMBean mBean = new SampleValue();
ObjectName objectName = new ObjectName("com.krrrr38.sample:type=SampleValue");
mBeanServer.registerMBean(mBean, objectName);
// ... run continually

monitoring

jconsole

f:id:krrrr:20151125225455p:plain

普段はVisualVM派