benchmark

command
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

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の実行回数)

パフォーマンス改善のヒント

  1. 正規表現の最適化: 正規表現は処理時間の大部分を占めることがあります。複雑な正規表現を簡略化するか、事前にコンパイルしておくことで改善できます。

  2. メモリアロケーションの削減: 不必要なメモリアロケーションを削減することで、GCの負荷を軽減できます。特に、ループ内での新しいオブジェクトの作成を避けることが重要です。

  3. DOM操作の最適化: DOM操作は処理時間の大部分を占めることがあります。不必要なDOM操作を削減することで改善できます。

  4. 並列処理の導入: 処理を並列化することで、マルチコアCPUの性能を活かすことができます。ただし、DOM操作は並列化が難しいため、注意が必要です。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL