JavaデスクトッププログラムをふつーのWindowsプログラムのように配布・実行 する方法とPCの動きが重くならないように 気を付けること JJUG CCC Spring 2016 I-5 高橋 徹.

Slides:



Advertisements
Similar presentations
ゲームプログラミング講習 第2章 関数の使い方
Advertisements

サービス管理責任者等研修テキスト 分野別講義    「アセスメントと        支援提供の基本姿勢」 <児童発達支援管理責任者> 平成27年10月1日.
ヒトの思考プロセスの解明を目的とするワーキングメモリの研究
第27講 オームの法則 電気抵抗の役割について知る オームの法則を使えるようにする 抵抗の温度変化を理解する 教科書P.223~226
コラッツ予想の変形について 東邦大学 理学部 情報科 白柳研究室 山中 陽子.
コンパイラ 第3回 字句解析 ― 決定性有限オートマトンの導出 ―
第5章 家計に関する統計 ー 経済統計 ー.
公共財 公共経済論 II no.3 麻生良文.
VTX alignment D2 浅野秀光 2011年12月15日  放射線研ミーティング.
冷却フランシウム原子を用いた 電子の永久電気双極子能率探索のための ルビジウム磁力計の研究
生命情報学 (8) スケールフリーネットワーク
前半戦 「史上最強」風 札上げクイズ.

認知症を理解し 環境の重要性について考える
フッ化ナトリウムによる洗口 2010・9・13 宮崎市郡東諸県郡薬剤師会 学校薬剤師  日高 華代子.
食品の安全性に関わる社会システム:総括 健康弱者 ハイリスク集団 HACCP (食肉処理場・食品工場) 農場でのQAP 一般的衛生管理
規制改革とは? ○規制改革の目的は、経済の活性化と雇用の創出によって、   活力ある経済社会の実現を図ることにあります。
地域保健対策検討会 に関する私見(保健所のあり方)
公共政策大学院 鈴木一人 第8回 専門化する政治 公共政策大学院 鈴木一人
医薬品ネット販売規制について 2012年5月31日 ケンコーコム株式会社.
平成26年8月27日(水) 大阪府 健康医療部 薬務課 医療機器グループ
平成26年度 呼吸器学会からの提案結果 (オレンジ色の部分が承認された提案) 新規提案 既収載の変更 免疫組織化学染色、免疫細胞化学染色
エナジードリンクの危険性 2015年6月23日 経営学部市場戦略学科MR3195稲沢珠依.
自動吸引は 在宅を変えるか 大分協和病院 院長         山本 真.
毎月レポート ビジネスの情報 (2016年7月号).
医療の歴史と将来 医療と医薬品産業 個人的経験 3. 「これからの医療を考える」 (1)医薬品の研究開発 -タクロリムスの歴史-
社会福祉調査論 第4講 2.社会調査の概要 11月2日.
2015年12月28日-2016年3月28日 掲載分.
2010度 民事訴訟法講義 補論 関西大学法学部教授 栗田 隆.
腫瘍学概論 埼玉医科大学国際医療センター 包括的がんセンター 緩和医療科/緩和ケアチーム 奈良林 至
“企業リスクへの考え方に変化を求められています。 トータルなリスクマネジメント・サービスをプロデュースします。“
情報漏えい 経済情報学科 E  西村 諭 E  釣 洋平.
金融班(ミクロ).
第11回 2009年12月16日 今日の資料=A4・4枚+解答用紙 期末試験:2月3日(水)N2教室
【ABL用語集】(あいうえお順) No 用語 解説 12 公正市場価格 13 債権 14 指名債権 15 事業収益資産 16 集合動産 17
基礎理論(3) 情報の非対称性と逆選択 公共政策論II No.3 麻生良文.
浜中 健児 昭和42年3月27日生まれ 東京都在住 株式会社ピー・アール・エフ 代表取締役 (学歴) 高 校:千葉県立東葛飾高校 卒業
COPYRIGHT(C) 2011 KYUSHU UNIVERSITY. ALL RIGHTS RESERVED
Blosxom による CMS 構築と SEO テクニック
記入例 JAWS DAYS 2015 – JOB BOARD 会社名 採用職種 営業職/技術職/その他( ) 仕事内容 待遇 募集数
ネットビジネスの 企業と特性 MR1127 まさ.
Future Technology活用による業務改革
ネットビジネス論(杉浦) 第8回 ネットビジネスと情報技術.
g741001 長谷川 嵩 g740796 迫村 光秋 g741000 西田 健太郎 g741147 小井出 真聡
自然独占 公共経済論 II no.5 麻生良文.
Autonomic Resource Provisioning for Cloud-Based Software
Webショップにおける webデザイン 12/6 08A1022 甲斐 広大.
物理的な位置情報を活用した仮想クラウドの構築
ハイブリッドクラウドを実現させるポイントと SCSKのOSSへの取組み
寺尾 敦 青山学院大学社会情報学部 第12回 情報デザイン(4) 情報の構造化と表現 寺尾 敦 青山学院大学社会情報学部
【1−1.開発計画 – 設計・開発計画】 システム開発計画にはシステム開発を効率的、効果的に実行する根拠(人員と経験、開発手順、開発・導入するシステム・アプリケーション・サービス等)を記述すること。 システム開発の開始から終了までの全体スケジュールを記載すること。 アプリケーション機能配置、ソフトウェア、インフラ構成、ネットワーク構成について概要を示すこと。
6 日本のコーポレート・ガバナンス 2008年度「企業論」 川端 望.
急成長する中国ソフトウェア産業 中国ソフトウェアと情報サービス産業の規模 総売上高は5年間で約5.3倍の成長
米国ユタ州LDS病院胸部心臓外科フェローの経験
公益社団法人日本青年会議所 関東地区埼玉ブロック協議会 JCの情熱(おもい)育成委員会 2011年度第1回全体委員会
次世代大学教育研究会のこれまでの活動 2005年度次世代大学教育研究大会 明治大学駿河台校舎リバティタワー9階1096教室
子どもの本の情報 大阪府内の協力書店の情報 こちらをクリック 大阪府内の公立図書館・図書室の情報
第2回産業調査 小島浩道.
〈起点〉を示す格助詞「を」と「から」の選択について
広東省民弁本科高校日語専業骨幹教師研修会 ①日本語の格助詞の使い分け ②動詞の自他受身の選択について   -日本語教育と中日カルチャーショックの観点から- 名古屋大学 杉村 泰.
■5Ahバッテリー使用報告 事例紹介/東【その1】 ■iphon4S(晴れの昼間/AM8-PM3) ◆約1時間で68%⇒100%
『ワタシが!!』『地域の仲間で!!』 市民が始める自然エネルギー!!
ポイントカードの未来形を形にした「MUJI Passport」
SAP NetWeaver を支える Microsoft テクノロジーの全貌 (Appendix)
ガイダンス(内業) 測量学実習 第1回.
Python超入門 久保 幹雄 東京海洋大学.
熱力学の基礎 丸山 茂夫 東京大学大学院 工学系研究科 機械工学専攻
京都民医連中央病院 CHDF学習推進委員会
資料2-④ ④下水道.
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Presentation transcript:

JavaデスクトッププログラムをふつーのWindowsプログラムのように配布・実行 する方法とPCの動きが重くならないように 気を付けること JJUG CCC Spring 2016 I-5 高橋 徹

高橋 徹の自己紹介 コミュニティ活動 ブログ等 ブログ http://d.hatena.ne.jp/torutk/ 他 毎月1回読書会開催中 ブログ等 ブログ http://d.hatena.ne.jp/torutk/ 他 Twitter @boochnich 2016-01~今 Java読書会BOF開催データ  通算206回、30冊目、平均参加者数11.7人 2015-06~12

アジェンダ Java プログラムを使ってもらう Windows インストーラー メモリと CPU 簡単につくる あれこれ注文をつける

Javaプログラムを使ってもらう

Javaプログラムを使ってもらう 簡単な配布、インストール、実行 CPUやメモリの使用は控え目

よくあるJavaプログラム配布シーン 動かすにはJavaを入れてください。JDKでもJREでも良いっす。 あっ、Javaはバージョン8u40以上でお願いします。 あっ、環境変数JAVA_HOMEを設定してください。 カレントディレクトリはjarファイルを置いたフォルダではなくその上のフォルダになるようにして下さい。 バッチファイルのパスをファイルを、プログラムを置いたフォルダに修正して下さい。空白の含まれるパスはだめです。 32bit版JREの方にしてください。

簡単な配布、インストール、実行 Microsoft Windows インストーラー

多数のJavaプログラム(64bit)を実行すると、 CPUやメモリの使用は控え目 多数のJavaプログラム(64bit)を実行すると、 CPU、メモリとも増加量が著しい Process Explorer の System Information画面

Javaプログラムを使ってもらう Windowsインストーラーを作成 CPUやメモリの使用を抑制 簡単な配布、インストール、実行

アジェンダ Java プログラムを使ってもらう Windows インストーラー メモリと CPU 簡単につくる あれこれ注文をつける

Windowsインストーラー javapackager 次の機能を持つJDK標準コマンド JRE JRE CSSファイルをバイナリ形式に変換 JARアーカイブファイルを作成 再配布用パッケージを作成 JARファイルを署名 OS X dmg pkg mac.appStore Linux rpm deb Windows msi exe スタンドアロンアプリケーション 自己完結型アプリケーション アプリケーション アプリケーション JRE JRE

Windowsインストーラー作成環境 Java SE Development Kit 8 WiX Toolset 3.10 http://wixtoolset.org NetBeans IDE 8.1 Microsoftのオープンソース第1号(2004年)

Windowsインストーラーの作成 デモ1

アジェンダ Java プログラムを使ってもらう Windows インストーラー メモリと CPU 簡単につくる あれこれ注文をつける

PCのリソース(メモリとCPU) 典型的なノートPCの仕様 CPU Intel 2core/4thread 2GHz メモリ 8GB OS Windows 10 64bit

PCのリソース(メモリとCPU) 典型的なノートPCの仕様 CPU Intel 2core/4thread 2GHz メモリ 8GB OS Windows 10 64bit https://software.intel.com/en-us/articles/heterogeneous-computing-pipelining

PCのリソース(メモリとCPU) 演算処理 (同時8命令) L1キャッシュメモリ (命令32KB + データ32KB) L2キャッシュメモリ Haswellマイクロアーキテクチャ

PCのリソース(メモリとCPU) ハイパースレッディングに注意 CPU coreは2つだが、JavaVMからはCPUが4つと見える。 thread thread 演算処理 (同時8命令) L1キャッシュメモリ (命令32KB + データ32KB) L2キャッシュメモリ (256KB) ハイパースレッディングに注意 CPU coreは2つだが、JavaVMからはCPUが4つと見える。 キャッシュ半減、競合増大

64bit JavaVMはCPU数に応じてスレッドを使用 PCのリソース(メモリとCPU) JITコンパイル・GCスレッド数のデフォルト (CPU:Intel 2core/4thread) Oracle Java RE 8 64bit版 Oracle Java RE 32bit版 JITコンパイルスレッド数(種類) 3(Tiered Compile) 1(Client Compiler) GCスレッド数(種類) 4(Parallel) 1(Serial) 合計 7 2 (「Javaパフォーマンス」より) 64bit JavaVMはCPU数に応じてスレッドを使用

PCのリソース(メモリとCPU) ヒープ、メタスペース、スタックメモリのデフォルト (メモリ8GB搭載) Oracle Java RE 8 64bit版 Oracle Java RE 8 32bit版 初期ヒープサイズ 128MB 16MB 最大ヒープサイズ 2GB 256MB メタスペースサイズ 20.75MB 12MB スタックサイズ(20スレッド分) 20MB 6.25MB (「Javaパフォーマンス」より) 64bit JavaVMはメモリの使用が多い

PCのリソース(メモリとCPU) Process Explorerツールで使用メモリを測定 入手先「Windows Sysinternals」 https://technet.microsoft.com/ja-jp/sysinternals/bb842062.aspx procexp.exe http://ec.nikkeibp.co.jp/item/books/P94640.html

PCのリソース(メモリとCPU) デモ2

Javaプログラムを32bit JavaVM上で実行すると、 PCのリソース(メモリとCPU) 多数のJavaプログラムを実行すると、 CPU、メモリとも増加量が著しい Javaプログラムを32bit JavaVM上で実行すると、 特にメモリの増加量を抑制できた Process Explorer の System Information画面

Javaプログラムの配布とPCのリソース javapackagerでWindowsインストーラー(MSI形式)を作成 32bit JavaVMでCPUやメモリの使用を抑制 Windowsインストーラーを作成 CPUやメモリの使用を抑制

アジェンダ Java プログラムを使ってもらう Windows インストーラー メモリと CPU 簡単につくる あれこれ注文をつける

簡単につくる NetBeans IDE でWindowsインストーラー作成 インストーラー作成 メニューが用意

簡単につくる デモ3

アジェンダ Java プログラムを使ってもらう Windows インストーラー メモリと CPU 簡単につくる あれこれ注文をつける

あれこれ注文をつける JDK8のjavapackagerではできないこと WiX Toolsetの世界で制御する 非ASCII文字での属性値設定 メジャーアップグレード・インストーラー作成 インストール先のカスタマイズ インストーラーUI WiX Toolsetの世界で制御する

あれこれ注文をつける WiXでMSI作成 アーカイブファイル (*.jar) WiXソース ファイル (*.wxs) 設定ファイル等 light.exe インストーラー (*.msi) Java実行環境 (JRE) candle.exe WiXオブジェクトファイル (*.wxsobj)

あれこれ注文をつける javapackagerを-vオプション付きで実行 javapackagerが%Temp%下に生成するWiXソースファイルのパスが表示されるので、これを取得していじる <JDK>\lib\ant-javafx.jarに含まれるtemplate.wxsを取り出していじる javapackagerを実行するディレクトリ下に、package\windows\JarManifestViewer.wxs のようにアプリケーション名で保存すると、javapackagerがテンプレートとして利用する。

あれこれ注文をつける デモ4

まとめ JavaプログラムをWindowsインストーラーで配布 CPUとメモリを控え目に使うには32bit版Javaで実行

デモ内容

デモ1 createmsi.ps1 javapackager -deploy -native msi ^ -outdir dist -outfile JarManifestViewer ^ -srcdir dist -srcfiles jarmanifestviewer.jar ^ -appclass com.torutk.jarmanifest.JarManifestViewer ^ -description "View for JAR file manifest" ^ -name JarManifestViewer ^ -vendor Torutk ^ -BappVersion=1.0 ^ -Bwin.menuGroup="Torutk Tools"

デモ1 Javapackagerで作成したMSIのインストール

デモ1 javapackagerで作成したMSIのインストール

デモ1 プログラム実行

デモ2 メモリ JDK 8u92 32bit版 JDK 8u92 64bit版 64bit JVM 32bit JVM Private Bytes 318MB 88MB Working Set - Private 110MB 50MB Virsutal Size 3717MB 551MB プロセスの使用メモリを調べるには、 Private Bytesを見るのが有用。

デモ2 CPU(スレッド) JDK 8u92 32bit版 JDK 8u92 64bit版 64bit JVM 32bit JVM Private Bytes 318MB 88MB Working Set - Private 110MB 50MB Virsutal Size 3717MB 551MB

デモ3 プロジェクトを右クリックし、 プロパティを開く

デモ3 JavaFX種類のプロジェクト・プロパティでの設定 Windowsインストーラの作成 システム共通(Program Filess)にインストール

デモ3 Javaアプリケーション種類のプロジェクト・プロパティでの設定 Windowsインストーラの作成 細かな設定が必要な場合は、 プロジェクトをJavaFXアプリケーション種類に切り替え

デモ3 ・アプリケーション名 ・インストーラーファイルの名称部分 ・実行ファイル(.exe)名 ・ショートカット名 ・コントロールパネルの開発元 ・スタートメニューのフォルダ名 ・インストーラーファイルのバージョン名部分 ・コントロールパネルのバージョン 注記)日本語等非ASCII文字を指定するとエラーとなります

デモ3 プロジェクトを右クリックし、 パッケージとして > MSIインストーラ を実行する

デモ3 ファイルタブを選択 プロジェクト下のdist\bundles下に インストーラファイルが生成

デモ3

デモ4 (1)プロジェクト直下にpackage\windowsフォルダを作成 (2)JDKのlib\ant-javafx.jar をzip解凍ツールで 開き、 (4)JarManifestViewer.wxs に変えて保存 (3)その中からtemplate.wxs を 取り出し、

デモ4 (1)UUIDを生成 (2)JarManifestViewer.wxsの編集 (3)javapackager実行 <MajorUpgrade DowngradeErrorMessage="Already new [ProductName] installed. Stopping to install." /> (3)javapackager実行

補遺

補遺 Javaプログラムのコンパイルと実行の流れ(非インストーラー) ソース ファイル (*.java) 各種 リソース ファイル ソース アーカイバ jar コンパイラ javac アーカイブ ファイル (*.jar) クラス ファイル (*.class) クラス ファイル (*.class) 外部 ライブラリ (*.jar) 外部 ライブラリ (*.jar)

補遺 Javaプログラムのコンパイルと実行の流れ(非インストーラー) アーカイブ ファイル (*.jar) java 外部 ライブラリ 外部 (JRE) 設定ファイル等

補遺 javapackager でインストーラーファイルを作る javapackager アーカイブファイル (*.jar) インストーラー (*.msi) javapackager 外部ライブラリ (*.jar) 外部ライブラリ (*.jar) 設定ファイル等 Java実行環境 (JRE) javapackager は、Java SE 8u20から搭載 (それ以前のjavafxpackagerのリネーム)

補遺 ショートカット インストール 実行ファイル (*.exe) インストーラー (*.msi) アーカイブファイル(*.jar) 設定ファイル等 Java実行環境(JRE)

補遺 コントロールパネルのプログラムと機能でインストール情報の確認 Windowsのコントロールパネルから プログラム名、発行元、バージョン等を参照できる アンインストールも簡単

補遺 Windows Management Instrumentation Get-WmiObjectコマンドレット Windows OSのシステム情報の収集・監視・管理を行う仕組み Get-WmiObjectコマンドレット リモートマシンの情報取得も可(-ComputerNameオプション) MSI形式のインストーラでインストールしたものに限る

Java SE 8のjavapackagerは、 WiX toolsetまたはInno Setupを使う 補遺 Windows OS上の主要インストーラー作成ツール Windowsインストーラー形式(MSI)を作成するもの、独自インストーラー形式を作成するものがある Windowsインストーラー(MSI) InstallShield   http://www.networld.co.jp/product/is/   商用製品。   Professional版(ノードロック)46万、   フローティング160万/ユーザー   限定版(LE)の権利がVisual Studio 2012~   (Professional以上) Visual Studio Installer   商用製品のVisual Studioの拡張機能(無償) WiX toolset   http://wixtoolset.org/   無償 独自インストーラー Inno Setup    http://www.jrsoftware.org/isinfo.php   無償 NSIS    http://nsis.sourceforge.net/ Java SE 8のjavapackagerは、 WiX toolsetまたはInno Setupを使う

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolsetのインストール

補遺 WiX Toolset msiファイルからwxsを生成 WiXソース インストーラー ファイル (*.msi) (*.wxs) dark.exe

補遺 WiX Toolset参考情報 WiXチュートリアル日本語訳   http://wix-tutorial-ja.github.io/toc.html 書籍(洋書)「WiX 3.6: A Developer’s Guide to Windows Installer XML」 Windows Installer/WiX/Installshield メーリングリスト   http://www.freeml.com/msi

補遺 javapackager 次の機能を持つJDK標準コマンド オプション説明 CSSファイルをバイナリ形式に変換 JARアーカイブファイルを作成 再配布用パッケージを作成 JARファイルを署名 オプション説明 https://docs.oracle.com/javase/jp/8/docs/technotes/tools/windows/javapackager.html

補遺 javapackager 再配布パッケージ(MSI)作成時 バージョン番号の指定可能形式 <A>.<B>.<C> A: 0~255 B: 0~255 C: 0~65535 http://msdn.microsoft.com/en-us/library/aa370859%28v=VS.85%29.aspx ※ MSI(WiX Toolset)では実は4つの数値の組み合わせが指定可能で、バージョン番号の比較(新旧)をチェックするときには最後(4つ目)の数値を無視する

補遺 第4世代Coreプロセッサ Haswell マイクロアーキテクチャ 同時8命令 (Port 0~7) ALU(演算装置)4つ LD/STA(メモリ読み書き)4つ Intel 64 and IA-32 Architectures Optimization Reference Manual より

補遺 JavaVM 32bitか64bitか、それが問題だ 書籍「Javaパフォーマンス」より 32bit版の優位点 32bit版の欠点 OSが32bitであれば、Java VMは32bitのみ。OSが64bitのときは、Java VMは32bitも64bitも選択可能。 32bit版の優位点 ヒープサイズが小さいとき、メモリ使用量が少なくメモリ参照が高速 JITクライアントコンパイラのみを使用可能 32bit版の欠点 プロセス合計サイズが2GB以下に制限 long型、double型で64bitレジスタを利用できず低速 書籍「Javaパフォーマンス」より

補遺 JITコンパイラの使用するスレッド数 書籍「Javaパフォーマンス」4.5.1より CPU数 C1 C2 C1+C2 1 2 4 3 32bit版は、クライアントコンパイラ(C1)とサーバーコンパイラ(C2)の選択が可能 64bit版は、階層コンパイラ(C1+C2)とサーバーコンパイラ(C2)の選択が可能(C1のみの選択は不可能) CPU数 C1 C2 C1+C2 1 2 4 3 8 16 6 -XX:CICompilerCount=N で合計スレッド数の指定可能 書籍「Javaパフォーマンス」4.5.1より

補遺 GCの使用するスレッド数 書籍「Javaパフォーマンス」5.2.4より CPU数 シリアルGC 並列GC 備考 1 32bit版は、デフォルトでシリアルGC 64bit版は、デフォルトで並列(スループット)GC CPU数 シリアルGC 並列GC 備考 1 8個までは、CPUごとに1つ 2 4 8 16 13 8 + 5(𝑁 −8) 8 -XX:ParallelGCThreads=N で合計スレッド数の指定可能 書籍「Javaパフォーマンス」5.2.4より

補遺 初期ヒープサイズ 書籍「Javaパフォーマンス」5.2.3より 物理メモリが192MB以下のマシン ・デフォルトで物理メモリの1/2 物理メモリが192MBより大きいマシン ・32bit版(サーバーVM)は、デフォルトで16MB 64bit版は、デフォルトで20.75MB 32bit版(クライアントVM)は、デフォルトで12MB 32bit版(サーバーVM)は、デフォルトで16MB 64bit版は、デフォルトで20.75MB -XX:MetaspaceSize=N でメタスペース初期サイズの指定可能 書籍「Javaパフォーマンス」5.2.3より

補遺 メタスペースの初期サイズ 書籍「Javaパフォーマンス」5.2.3より 32bit版(クライアントVM)は、デフォルトで12MB 32bit版(サーバーVM)は、デフォルトで16MB 64bit版は、デフォルトで20.75MB -XX:MetaspaceSize=N でメタスペース初期サイズの指定可能 書籍「Javaパフォーマンス」5.2.3より

補遺 スレッドの使用するスタックサイズ 書籍「Javaパフォーマンス」9.4.1より 32bit版は、デフォルトで320KB 64bit版は、デフォルトで1MB メインスレッドのスタックサイズは-Xssで指定したものとは別 -Xss=N でスレッドあたりのスタックサイズの指定可能 書籍「Javaパフォーマンス」9.4.1より

補遺 JavaVM 64bit上で実行する場合 32bit版JavaVMと近い設定をする -Xms16m -Xmx256m -Xss320k Private Bytes 66MB 304MB 107MB Working Set Private 37MB 87MB 61MB -Xms16m -Xmx256m -Xss320k -XX:+UseSerialGC -XX:CICompilerCount=2

補遺 Windows OS上のプロセスのメモリ管理 仮想アドレス空間 使用 予約 空き Virsutal Size Private Bytesに着目 †1 Private Bytes 使用 (一部) †2 物理メモリ †1) 他のプロセスと共有可能なメモリはPrivate BytesとWorking Set - Privateには含まれない Working Set - Private †1 †2) 物理メモリ上には実際にはリニアに配置されることはない

補遺 Windowsのメモリ項目は計測ツールにより呼び方がゆらぐ 項目 パフォーマンスカウンタ Process Explorer タスクマネージャ 仮想サイズ Virtual Bytes Virtual Size コミットサイズ Private Bytes ワーキングセット Working Set ワーキングセット(メモリ) プライベートワーキングセット Working Set - Private WS Private メモリ