command
Version:
v0.3.1
Opens a new window with list of versions in this module.
Published: Apr 13, 2025
License: Apache-2.0
Opens a new window with license information.
Imports: 8
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
¶
パフォーマンス測定ツール
このツールは、go-readabilityライブラリのパフォーマンスを測定するためのものです。処理時間とメモリ使用量を測定し、CPUプロファイルとメモリプロファイルを出力することができます。
使い方
# 基本的な使い方(デフォルトのテストケースを使用)
./benchmark
# 繰り返し回数を指定
./benchmark -iterations=1000
# 特定のHTMLファイルを使用
./benchmark -html=/path/to/your/file.html
# 特定のテストケースを使用
./benchmark -testcase=../../testdata/fixtures/002
# CPUプロファイルとメモリプロファイルを出力
./benchmark -cpuprofile=cpu.prof -memprofile=mem.prof
オプション
-cpuprofile: CPUプロファイルの出力先ファイル
-memprofile: メモリプロファイルの出力先ファイル
-iterations: 繰り返し回数(デフォルト: 100)
-html: HTMLファイルのパス(指定しない場合はテストケースを使用)
-testcase: テストケースのディレクトリ(htmlが指定されていない場合に使用、デフォルト: ../../testdata/fixtures/001)
プロファイルの解析
CPUプロファイル
CPUプロファイルを解析するには、以下のコマンドを実行します:
go tool pprof cpu.prof
対話モードで以下のコマンドを使用できます:
top: 最も時間がかかっている関数を表示
list <関数名>: 特定の関数のソースコードと実行時間を表示
web: プロファイルをブラウザで表示(Graphvizが必要)
メモリプロファイル
メモリプロファイルを解析するには、以下のコマンドを実行します:
go tool pprof mem.prof
対話モードで以下のコマンドを使用できます:
top: 最もメモリを使用している関数を表示
list <関数名>: 特定の関数のソースコードとメモリ使用量を表示
web: プロファイルをブラウザで表示(Graphvizが必要)
測定結果
処理時間
- 100回の繰り返しで約40ms
- 1回あたりの平均処理時間: 約400µs
メモリ使用量
- Alloc: 約1 MiB(現在割り当てられているメモリ)
- TotalAlloc: 約76 MiB(プログラム開始からの総割り当てメモリ)
- Sys: 約13 MiB(システムから割り当てられたメモリ)
- NumGC: 約46回(GCの実行回数)
パフォーマンス改善のヒント
-
正規表現の最適化: 正規表現は処理時間の大部分を占めることがあります。複雑な正規表現を簡略化するか、事前にコンパイルしておくことで改善できます。
-
メモリアロケーションの削減: 不必要なメモリアロケーションを削減することで、GCの負荷を軽減できます。特に、ループ内での新しいオブジェクトの作成を避けることが重要です。
-
DOM操作の最適化: DOM操作は処理時間の大部分を占めることがあります。不必要なDOM操作を削減することで改善できます。
-
並列処理の導入: 処理を並列化することで、マルチコアCPUの性能を活かすことができます。ただし、DOM操作は並列化が難しいため、注意が必要です。
Documentation
¶
There is no documentation for this package.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.