タグ

lambdaとjavaに関するkoda3のブックマーク (2)

  • AWS Lambda + Javaは、なぜ1回目と3回目の処理が重いのか? - 谷本 心 in せろ部屋

    以前のエントリーで、AWS LambdaJavaを使ってDynamoDBを呼び出した際に、初回起動にとても時間が掛かったという話を書きました。 http://d.hatena.ne.jp/cero-t/20160101/1451665326 今回は、この辺りの原因をもう少し追求してみます。 なぜ1回目と3回目のアクセスが遅いのか? AWS Lambdaの中身はよく知りませんが、おそらく、アップロードしたモジュールをTomcatみたいなコンテナとして起動させて、外部からコールしているんだろうと予想しました。それであれば、2回目以降のアクセスが早くなることは理解ができます。 ただ、1回目と3回目だけが極端に遅くて、2回目、4回目以降は早くなるというところは腑に落ちません。 その辺りを調べるべく、staticなカウンタを使って、値がどんな風に変化するかを調べてみました。 こんなソースコードです

    AWS Lambda + Javaは、なぜ1回目と3回目の処理が重いのか? - 谷本 心 in せろ部屋
  • GroovyのクロージャとJava8のlambda式の違いについて - uehaj's blog

    この両者は、似ているようでいて、基的には別モノです。表にしてみます。 Groovyのクロージャ java8のlambda式 導入時期 2003年 2014年03月 ローカル変数へのアクセス 読み書き可能 実質的にfinal(変数そのものに対しては読み込みのみ) 実装方法 Closure型のインスタンス MethodHandle, invokeDynamic.. 型推論の根拠 Closure<T>のTで返り値、@ClosureParamsで引数 FunctionalInterface(SAM型) 記法 { 引数 -> 体 } { 体 } {-> 体 } (引数) -> { 体 } (引数) -> 式 () -> { 体 } 暗黙の動的なthis delegateにより実現 - 性能 ローカル変数をenclosingするため間接参照にするためのオーバーヘッドあり 性能上のオーバーヘ

    GroovyのクロージャとJava8のlambda式の違いについて - uehaj's blog
  • 1