概要IntelliJ Community project 内のプロジェクトである Fernflower を紹介します。Fernflower は Java のデコンパイラです。内容Fernflower を用いた Java のデコンパイル方法を紹介します。Ubuntu 18.04 上で試してます。1. IntelliJ Community プロジェクトをクローンします。git clone https://github.com/JetBrains/intellij-community2. Fernflower をビルドします。cd intellij-community/plugins/java-decompiler/e...
- 2018/09/24(月) 23:12:40|
- Java
-
| トラックバック:0
-
| コメント:0
新たなデバイスが接続されたことの調査に使える setupAPI.dev.log を紹介します。デバイスが接続されていた事実の調査に利用可能です。手順0. 一例として、VMware 環境の Shared Windows Hello for Business 9 を有効にしてみます。1. 「%systemdrive%\Windows\inf\setupapi.dev.log」を開きます。2. 以下のようなログが記録されています。注目点は色付きの部分です。>>> [Device Install (Hardware initiated) - U...
- 2018/09/17(月) 23:25:06|
- ツール
-
| トラックバック:0
-
| コメント:0
概要Java アプリのヒープダンプの状態を比較する方法を紹介します。ここでは VisualVM を用います。内容手順1. ヒープダンプを取得する Java プログラムのプロセス ID を確認します。jcmd2. ヒープダンプを作成します。jcmd <プロセス ID> GC.heap_dump <ヒープダンプの出力パス>3. 比較用のヒープダンプを作成します。jcmd <プロセス ID> GC.heap_dump <ヒープダンプの出力パス>4. VisualVM を起動します...
- 2018/09/09(日) 22:27:04|
- Java
-
| トラックバック:0
-
| コメント:0
!envvar COMPUTERNAME で、プロセスダンプがとられたコンピューターのコンピューター名を表示できます。以下の例では、ダンプがとられたコンピューター名は「TR-DESKTOP」であることがわかります。情報元How to get computer name, host name from a memory dump, WinDbg (英語)関連記事プールが割り当てられた際にブレークする方法:PoolHitTag...
- 2018/09/01(土) 22:21:23|
- WinDbg
-
| トラックバック:0
-
| コメント:0
概要Jupyter Notebook でのプロファイリング方法を紹介します。%time: 実行時間を計測%timeit: 複数回の結果を元に、実行時間を計測%prun: プロファイリングを実行%lprun: 行ごとにプロファイリングを実行%memit: メモリ使用量を測定内容%time実行時間を計測します。User CPU time、Sys CPU time、Wall time がわかります。import randomL = [random.random() for i in range(100000)]%time L.sort()%timeit複数回の結果を元に、実...
- 2018/09/01(土) 17:30:21|
- Python
-
| トラックバック:0
-
| コメント:0