プログラムを作ってる時、機能的なエラーは作ってるうちにわかりますよね。
ですが性能的なボトルネックは使ってみないとわかりませんよね。
この関数かな?とあたりをつけて改善していくことでしょう。
たまたま1ファイルの処理についてのプログラムを書いてたんですが、複数ファイルを並行処理することになってけっこう時間かかるのがわかりました。
でどーやって性能のボトルネックを探すかってことのtipsです。
すごい初歩的なやり方です。
Goで書いてます。
package main import ( "fmt" "time" "strconv" ) func main() { fmt.Println("===Start===") bf_t := time.Now() fmt.Println(bf_t) var total int64 for i := 0 ; i < 3 ; i++ { bf_t_in := time.Now() //何かしらの処理 time.Sleep(3 * time.Second) af_t_in := time.Now() total = total + af_t_in.Sub(bf_t_in).Nanoseconds() } af_t := time.Now() fmt.Println(af_t.Sub(bf_t)) fmt.Println(strconv.FormatInt(total, 10)) }
===Start=== 2009-11-10 23:00:00 +0000 UTC m=+0.000000001 9s 9000000000
https://play.golang.org/p/0Y1jS7our2b
timeパッケージを使うと便利でした。
参考
time - The Go Programming Language
(こんな記事もあります)
Go言語の書籍 - S氏はたまにblogを更新してます in hatena
Goでトークナイズ処理してみる。 - S氏はたまにblogを更新してます in hatena
golang カテゴリーの記事一覧 - S氏はたまにblogを更新してます in hatena
- 作者: 松尾愛賀
- 出版社/メーカー: 翔泳社
- 発売日: 2016/05/11
- メディア: Kindle版
- この商品を含むブログを見る
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- 作者: Alan A.A. Donovan,Brian W. Kernighan,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2016/06/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る