Submit Search
Upload
Java EE パフォーマンスTips #glassfish_jp
•
Download as PPTX, PDF
•
12 likes
•
8,095 views
Norito Agetsuma
Follow
2015-09-16 帰ってきたGlassFish Users Group Japan勉強会のスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 32
Download now
Recommended
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch
Jun Inose
JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”
Norito Agetsuma
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
async/await のしくみ
async/await のしくみ
信之 岩永
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
Masatoshi Tada
Recommended
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
20160215 04 java ee7徹底入門 jbatch
20160215 04 java ee7徹底入門 jbatch
Jun Inose
JSR 352 “Batch Applications for the Java Platform”
JSR 352 “Batch Applications for the Java Platform”
Norito Agetsuma
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
Akihiro Ikezoe
async/await のしくみ
async/await のしくみ
信之 岩永
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
Masatoshi Tada
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
JSRとJEPとJBSの見方や調べ方について
JSRとJEPとJBSの見方や調べ方について
Aya Ebata
Mavenの真実とウソ
Mavenの真実とウソ
Yoshitaka Kawashima
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
CPUから見たG1GC
CPUから見たG1GC
Kenji Kazumura
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
nagise
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Masatoshi Tada
Java EE 再入門
Java EE 再入門
minazou67
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
Satoshi Kubo
RESTfulとは
RESTfulとは
星影 月夜
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Java EE8 Report
Java EE8 Report
Norito Agetsuma
More Related Content
What's hot
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
JSRとJEPとJBSの見方や調べ方について
JSRとJEPとJBSの見方や調べ方について
Aya Ebata
Mavenの真実とウソ
Mavenの真実とウソ
Yoshitaka Kawashima
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Norito Agetsuma
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
CPUから見たG1GC
CPUから見たG1GC
Kenji Kazumura
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
nagise
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Masatoshi Tada
Java EE 再入門
Java EE 再入門
minazou67
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
Satoshi Kubo
RESTfulとは
RESTfulとは
星影 月夜
What's hot
(20)
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
XunitとMoq 公開用
XunitとMoq 公開用
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
JSRとJEPとJBSの見方や調べ方について
JSRとJEPとJBSの見方や調べ方について
Mavenの真実とウソ
Mavenの真実とウソ
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Javaトラブルに備えよう #jjug_ccc #ccc_h2
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
CPUから見たG1GC
CPUから見たG1GC
ジェネリクスの基礎とクラス設計への応用
ジェネリクスの基礎とクラス設計への応用
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Pivotal認定講師によるSpring Framework 5.1 & Spring Boot 2.1ハンズオン! #jjug_ccc
Java EE 再入門
Java EE 再入門
金魚本に載ってないJpqlの話 #glassfishjp
金魚本に載ってないJpqlの話 #glassfishjp
RESTfulとは
RESTfulとは
Viewers also liked
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Masatoshi Tada
Java EE8 Report
Java EE8 Report
Norito Agetsuma
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
典子 松本
「もしかして」「私たち」「「入れ替わってるー! 」」〜Java女子部がRuby on Railsやってみた編〜
「もしかして」「私たち」「「入れ替わってるー! 」」〜Java女子部がRuby on Railsやってみた編〜
Aya Ebata
JavaOne2015報告会 Java EE アップデート #j1jp
JavaOne2015報告会 Java EE アップデート #j1jp
Norito Agetsuma
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
Welcome back, GlassFish!
Welcome back, GlassFish!
Yumi Hiraoka
Java EE 7技術アップデート & 逆引き JSF 2.2
Java EE 7技術アップデート & 逆引き JSF 2.2
Hirofumi Iwasaki
Oracle talk 20131213
Oracle talk 20131213
Arshal Ameen
JPA説明会
JPA説明会
Ryo Asai
Introduction to Wildfly 8 - Marchioni
Introduction to Wildfly 8 - Marchioni
Codemotion
JSFとJAX-RSで作る Thin Server Architecture #glassfishjp
JSFとJAX-RSで作る Thin Server Architecture #glassfishjp
Toshiaki Maki
Android端末のroot化について
Android端末のroot化について
Shuichi Takaya
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
Kunimasa Noda
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
Narihiro Nakamura
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
Yusuke Suzuki
Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編
Yuichi Sakuraba
Scala dreaded underscore
Scala dreaded underscore
RUDDER
Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御
Norito Agetsuma
Viewers also liked
(19)
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE8 Report
Java EE8 Report
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
「もしかして」「私たち」「「入れ替わってるー! 」」〜Java女子部がRuby on Railsやってみた編〜
「もしかして」「私たち」「「入れ替わってるー! 」」〜Java女子部がRuby on Railsやってみた編〜
JavaOne2015報告会 Java EE アップデート #j1jp
JavaOne2015報告会 Java EE アップデート #j1jp
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Welcome back, GlassFish!
Welcome back, GlassFish!
Java EE 7技術アップデート & 逆引き JSF 2.2
Java EE 7技術アップデート & 逆引き JSF 2.2
Oracle talk 20131213
Oracle talk 20131213
JPA説明会
JPA説明会
Introduction to Wildfly 8 - Marchioni
Introduction to Wildfly 8 - Marchioni
JSFとJAX-RSで作る Thin Server Architecture #glassfishjp
JSFとJAX-RSで作る Thin Server Architecture #glassfishjp
Android端末のroot化について
Android端末のroot化について
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
アプリ開発・端末毎の解像度の違いを吸収する方法 Android Bazaar and Conference 2011 Summer
桐島、Rubyやめるってよ
桐島、Rubyやめるってよ
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
JavaOne感想&技術トレンド紹介 - JavaOne2015報告会
Javaのプログラムはどうやって動いているの? GC編
Javaのプログラムはどうやって動いているの? GC編
Scala dreaded underscore
Scala dreaded underscore
Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御
Similar to Java EE パフォーマンスTips #glassfish_jp
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
なおき きしだ
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
Yasumasa Suenaga
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
Appresso Engineering Team
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
David Buck
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
normalian
What is doobie? - database access for scala -
What is doobie? - database access for scala -
chibochibo
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
PE-BANK
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
オラクルエンジニア通信
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Yuji Kubota
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_study
Toshiaki Maki
Play with Playframework
Play with Playframework
Takafumi Yoshida
Java in the World of Container by David Buck
Java in the World of Container by David Buck
オラクルエンジニア通信
Hello Java
Hello Java
Chihiro Ito
Springでdao 20070413
Springでdao 20070413
Funato Takashi
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
Yuji Kubota
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
Chihiro Ito
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Similar to Java EE パフォーマンスTips #glassfish_jp
(20)
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
Panamaを先取り!? JVMCIでJITと遊ぶ
Panamaを先取り!? JVMCIでJITと遊ぶ
Play jjug2012spring
Play jjug2012spring
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
What is doobie? - database access for scala -
What is doobie? - database access for scala -
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
JavaOne 2015 JDK Update (Jigsaw) #j1jp
JavaOne 2015 JDK Update (Jigsaw) #j1jp
Beginning Java EE 6 勉強会(1) #bje_study
Beginning Java EE 6 勉強会(1) #bje_study
Play with Playframework
Play with Playframework
Java in the World of Container by David Buck
Java in the World of Container by David Buck
Hello Java
Hello Java
Springでdao 20070413
Springでdao 20070413
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
HeapStats @ Seasar Conference 2015 LT
HeapStats @ Seasar Conference 2015 LT
Oracle code one 2018 報告会概要
Oracle code one 2018 報告会概要
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
More from Norito Agetsuma
Quarkus入門
Quarkus入門
Norito Agetsuma
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
Norito Agetsuma
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
Norito Agetsuma
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめよう
Norito Agetsuma
AeroGear & Java EE 7 で簡単プッシュ
AeroGear & Java EE 7 で簡単プッシュ
Norito Agetsuma
プロになるためのJavaScript入門読書会 レジュメ
プロになるためのJavaScript入門読書会 レジュメ
Norito Agetsuma
SQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメ
Norito Agetsuma
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
Norito Agetsuma
Lt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdi
Norito Agetsuma
More from Norito Agetsuma
(9)
Quarkus入門
Quarkus入門
Java EEを補完する仕様 MicroProfile
Java EEを補完する仕様 MicroProfile
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
CDI2.0アップデート&クックブック #JavaDayTokyo #jdt2016_4c
JJUG 11月ナイトセミナー CDIをはじめよう
JJUG 11月ナイトセミナー CDIをはじめよう
AeroGear & Java EE 7 で簡単プッシュ
AeroGear & Java EE 7 で簡単プッシュ
プロになるためのJavaScript入門読書会 レジュメ
プロになるためのJavaScript入門読書会 レジュメ
SQLアンチパターン読書会 レジュメ
SQLアンチパターン読書会 レジュメ
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
Lt agetsuma 拡大するcdi
Lt agetsuma 拡大するcdi
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Recently uploaded
(9)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
Java EE パフォーマンスTips #glassfish_jp
1.
Java EE パフォーマンスTips 2015/09/16 帰ってきた GlassFish
Users Group Japan 勉強会 上妻 宜人 (あげつま のりと)
2.
上妻 宜人 -
あげつま のりと • SIer勤務 • 技術サポート部隊に所属 • Java / Java EE トラブルシューティング • はてな 見習いプログラミング日記
3.
本日のテーマ
4.
Java EEレイヤ毎の性能Tips Presentation Business Logic Repository • JSF •
JAX-RS • .... • EJB • CDI • JPA/JDBC • 外部API呼出 • ファイル I/O
5.
Java EEパフォーマンスTips • プレゼンテーション層
(JSF) • #1 古いmojarraを使わない (JAVASERVERFACES-2494対策) • ビジネス層 (EJB/CDI) • #2 DIはEJBではなくCDIを使う • #3 @Asynchronous利用時はスレッドプールに注意 • データアクセス層 (JPA) • #4 JPAのexecuteBatch設定を忘れない
6.
#1 古いmojarraを使わない (JAVASERVERFACES-2494対策)
7.
#1 古いmojarraを使わない • JSF参照実装mojarraには、かつて性能バグがあった •
JAVASERVERFACES-2494 (https://java.net/jira/browse/JAVASERVERFACES-2494) • JSFタグ (UIComponent) が増えると遅くなる問題 • 2.1.22, 2.2.1 で修正 • GlassFish4.0 が該当。4.1でFix。
8.
GlassFish4.0 と Payara4.1
で実測 • 大量のJSFタグがポイント • 1000, 3000, 5000 タグで GlassFish4.0 と Payara4.1 比較 <h:body> <h1>JSF Many Component 1000</h1> <h:form> <h:outputText value="#{testBean.name}"/> <h:outputText value="#{testBean.name}"/> <h:outputText value="#{testBean.name}"/> <h:outputText value="#{testBean.name}"/> <h:outputText value="#{testBean.name}"/> ... 以降大量のoutputTextを繰り返す
9.
タグ数が多い場合は注意 • GlassFish4.0: レスポンスタイムが徐々に低下 •
Payara4.1.153 : 5000タグで150ミリ秒 0 1000 2000 3000 4000 5000 1000 2000 3000 4000 5000 レスポンスタイム(ミリ秒) JSFタグ数 GlassFish 4.0 (mojarra2.2.0) Payara 4.1.153 (mojarra2.2.11) マシン情報: MacBook Air corei5 1.7GHz JDK1.8.0_60
10.
mojarraは色々な所で使われている • GlassFish • 4.0は影響あり。
4.1以降で修正。 • Payaraは4.1ベースなので影響なし。 • WildFly • 8.0.0と8.1.0は影響あり。 8.2以降で修正。
11.
Java EEパフォーマンスTips • プレゼンテーション層
(JSF) • #1 古いmojarraを使わない (JAVASERVERFACES-2494対策) • ビジネス層 (EJB/CDI) • #2 DIはEJBではなくCDIを使う • #3 @Asynchronous利用時はスレッドプールに注意 • データアクセス層 (JPA) • #4 JPAのexecuteBatch設定を忘れない
12.
#2 DIはEJBではなくCDIを使う
13.
#2 DIはEJBではなくCDIを使う • Java
EE6 CDI が導入。 • Java EE7 より beans.xml なしでデフォルト有効化。 • Java EE5 まではEJB間でのみDIが利用可。 @Inject private StockService service; @Dependent public class StockService { // ... }
14.
EJBのループ呼び出しによるオーバヘッド • EJBのループ呼び出しは性能上悩みの種だった • 万単位以上のループのみオーバヘッド顕在化 •
見つかった時には試験期間の後半
15.
実際に測っている • Payara4.1.152でBeanをループ呼び出し • EJB
と CDI Bean を呼び出して比較 // EJB @Stateless public class EJBBean { public String echo(String s) { return s; } } // CDI @ApplicationScoped public class CDIBean {...} // Client @Inject EJBBean ejb; for (int i = 0; i < loop; i++) { ejb.echo(String.valueOf(i)); }
16.
CDIはほとんどオーバヘッドがない 271 907 2953 1 8 15 10000
50000 100000 EJB @Stateless CDI @ApplicationScoped ループ呼び出し回数 単位: ミリ秒 マシン情報: MacBook Air corei5 1.7GHz JDK1.8.0_60, Payara4.1.153
17.
@Transactionalもループで呼び出してみた • @Transactinal 宣言的トランザクション
(Java EE7 〜) • ついうっかり、ループで呼び出される状況を想定 @ApplicationScoped @Transactional public class StockService { public void put(Stock s) { // 更新系処理 ... } public void search(Criteria c) { // 参照系処理 ... } }
18.
@Transactionalはループで呼ばないこと • @Transactional の実体はインターセプタ。 •
ループ呼出しコストは高い。 271 907 2953 1 8 151909 8822 32761 10000 50000 100000 EJB @Stateless CDI @ApplicationScoped CDI @ApplicationScoped & @Transactional ループ呼び出し回数 マシン情報: MacBook Air corei5 1.7GHz JDK1.8.0_60, Payara4.1.153 単位: ミリ秒
19.
#3 @Asynchronous利用時は EJBスレッドプールに注意
20.
#3 @Asynchronous利用時はEJBスレッドプールに注意 • @Asynchronousの振り返り •
EJB3.1 (Java EE6) で導入 • シンプルに非同期タスク処理が実装できる @Stateless public class AsyncBean { @Asynchronous public Future<String> async() { return new AsyncResult<>("done”); } }
21.
GlassFishデフォルトは多重度が増えない • 以下の非同期EJBの呼び出しは、16多重で止まる • GlassFish4
EJBスレッドプールのデフォルト上限が16 • Performance Tuning Guideにも言及がなく、ハマる @Inject private AsyncBean async; public void callAsyncEjb() { IntStream.range(0, 100) .forEach(i -> async.async()); }
22.
“EJB Container” のプロパティを追加 •
固有の入力欄はなく、プロパティとして設定 • thread-core-pool-size : 最小プールサイズ • thread-max-pool-size : 最大プールサイズ
23.
Java EEパフォーマンスTips • プレゼンテーション層
(JSF) • #1 古いmojarraを使わない (JAVASERVERFACES-2494対策) • ビジネス層 (EJB/CDI) • #2 DIはEJBではなくCDIを使う • #3 @Asynchronous利用時はスレッドプールに注意 • データアクセス層 (JPA) • #4 JPAのexecuteBatch設定を忘れない
24.
#4. JPAのexecuteBatch設定を忘れない • JDBC利用時はexecuteBatchを皆意識する •
JPAを使い始めると、何故か忘れやすい • JPA内部で自動的に最適化されている淡い期待 • しかし、EclipseLinkもHibernateもバッチ更新デフォルト無効
25.
EclipseLink のバッチ書き込み設定 • persistence.xml
に設定 • eclipselink.jdbc.batch-writing = jdbc (default: none) • eclipselink.jdbc.batch-writing.size = ... (default: 100) <persistence-unit name="PostgresPU"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>jdbc/postgresDS</jta-data-source> <properties> <property name="eclipselink.jdbc.batch-writing" value="jdbc"/> <property name="eclipselink.jdbc.batch-writing.size" value="100"/> ...
26.
Payara4.1で実際に測ってみる • PostgreSQLに100, 1000,
1万レコードのINSERT • JDBCを加えてO/Rマッパー遅い疑惑も検証 • #1. JDBC executeBatch • #2. JPA batch-writing=jdbc (バッチ有効化) • #3. JPA batch-writing=none (バッチ無効化)
27.
測定結果 • INSERT 100レコード
でも十分な効果がある • JDBCと比較して、JPA(EclipseLink) は1〜2割遅い • 1万行であれば、ORMコストはそれほど大きくない 40 128 122375 169 14891243 9023 58247 100レコード 1000レコード 10000レコード JDBC executeBatch EclipseLink (batch-writing=jdbc) EclipseLink (batch-writing=none) 単位: ミリ秒 マシン情報: MacBook Air corei5 1.7GHz JDK1.8.0_60, Payara4.1.153, PostgreSQL9.3
28.
まとめ
29.
#1 古いmojarraを使わない GlassFish4.1以上 or
Payaraを使う (mojarra2.1.22, 2.2.1 以上)
30.
#2 DIはEJBではなくCDIを使う 過ループ時のEJBのオーバヘッドは大きい @Transactionalループ呼び出しに注意
31.
#3 @Asynchronous利用時は EJBスレッドプールに注意 EJBコンテナの以下プロパティを忘れずに設定 thread-core-pool-size, thread-max-pool-size
32.
#4 JPAのexecuteBatch設定を忘れない EclipseLink/Hibernateデフォルトはバッチ無効 persistence.xml eclipselink.jdbc.batch-writing=jdbc
Download now