Popular Tests Timed Linux Kernel Compilation7-Zip CompressionHashcatBlenderSVT-AV1GLmark2 Newest Tests Counter-Strike 2QuicksilverGpuOwlProjectPhysX OpenCL-BenchmarkSpeedbScyllaDB Recently Updated Tests LibplaceboVkFFTdav1dNAMDGROMACSIntel Open Image Denoise New & Recently Updated Tests Recently Updated Suites SteamHPC - High Performance ComputingMachine Learning New & Recently Updated Suites Comp
この文書について Linuxでベンチマーク測定したい時にお勧めなPhoronix Test Suiteについて。 「これ一本で手軽に一通り測定可能」ってワケじゃないけれど、各種代表的なベンチマーク測定ソフトを自動でダウンロード→コンパイル→ベンチマーク測定してくれる便利なソフト。実機とXen仮想マシンのパフォーマンスを比べたり、XenでCPU数増やした時にホントに速くなっているのか見て喜びたい時にどうぞ。 Windowsでベンチマーク測定したければCrystalMarkがよろしいかと。 単純なベンチマークじゃつまらなければMHFベンチマーク(Win)とかFF XIベンチマーク(Win)を。 インストール ダウンロードページからダウンロード(ここでは1.2.2のSource)して展開し、展開先ディレクトリの中のinstall-shを実行。 依存するパッケージをyumでインストール # yum
この記事は Go 2 Advent Calendar 14日目の穴埋め記事です。 はじめに @okdyy75 さんによる Go 5 Advent Calendar 14日目の の記事「だから僕はGo言語を辞めた」 が「ベンチマークっていうのはこうやるんだよ」というのを説明するために反面教師的な意味で良い教材だと思ったので、反証記事を書きたいと思います。 ベンチマークを取りながらコードを改善して、最終的にGoは遅くないからやめる必要はないということ、そして、なぜ遅いという結論になってしまったのかを掘り下げていきたいと思います。 下準備 幸いなことに、ベンチマークのソースコードがGitHubにある ので、こちらを実行しながら問題点を改善していきましょう。 ちゃんとコードが上がっているのは素晴らしいですね! 一方で、元記事には測定環境が明記されていませんでしたので、同じ環境で測定することはできま
背景 システムコールから先のボトルネック箇所を知りたい事がありまして、その際にperfなるものを教えてもらいました。 使ってみると色々と便利なツールで勉強になったことも多々あるのでそちらのご紹介です。 概要 perf(Performance analysis tools for Linux)とはLinuxカーネル2.6.31以降で使用可能なLinuxの性能解析ツールです。 ざっくりいえば下記 実行されるプログラムと OS とのイベントを見れる OS とハードウェアのイベントを見れる カーネルのカウンタで計測されるイベントだったりプロセッサで計測されるイベントが知れる 例えばL1のヒット状況やTLBの様子なども観察できます。 (CPUサイクル数、分岐の数、分岐予測ミス数、キャッシュ参照数、キャッシュミス数など豊富な機能) 導入 導入はRedHat,centOSならyum,ubuntuならap
line_profiler が便利です スピーチとスカートは短いほうがいい、という話を聞いたことがあります。 データ分析でも、実験をできるだけ多くしたいので、 前処理などの定型繰り返し作業はできるだけ短いほうがいいですね。 そんなときに役に立つのがプロファリングだと思います。 最近、プライベートで数10GB~サイズのデータを扱うことになりました。 その作業を通じて、並列処理、プロファイリングなどについて 小さな発見がありましたので、共有できたらなと思いました。 初回は、line_profilerでプロファイリングしたときの発見です。 line_profiler については、いろんな方が書いているので、調べて頂ければと思います。 とても素晴らしいプロジェクトです。 データの集計処理をプロファイリングする データについて 実際にあつかったデータはお見せできませんので。。。 そのデータに構造が近
サーモン大好き横山です。 Pythonのコードを書いていて、どの処理で遅延しているか調べるとき、どうしていますか? 今回は関数の行ごとに実行速度を計測出来る line_profiler を紹介します。 準備 今回はMac上でやっていきます。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.10.4 BuildVersion: 14E46 $ python -V Python 2.7.9 環境はPython2.7でvirtualenvの準備をします。 $ mkdir -p /tmp/line_profiler $ cd !:2 cd /tmp/line_profiler $ virtualenv -p /usr/bin/python2.7 venv27 Running virtualenv with interpreter /usr/bi
timeit — Measure execution time of small code snippets¶ Source code: Lib/timeit.py This module provides a simple way to time small bits of Python code. It has both a Command-Line Interface as well as a callable one. It avoids a number of common traps for measuring execution times. See also Tim Peters’ introduction to the “Algorithms” chapter in the second edition of Python Cookbook, published by O
The purpose of this article is providing a benchmark comparison between Koazee and two of the most well-known Golang frameworks to work with arrays: Go-Funk and Go-Linq. SourcesKoazee: https://github.com/wesovilabs/koazeeGo-Linq: https://github.com/ahmetb/go-linqGo-Funk: https://github.com/thoas/go-funkThe repository used to create the benchmark comparison can be found on my Github organization, h
golangでbyteをstringに変換する処理はたびたび発生するのですが、 手抜きで fmt.Sprintf("%s", byte) などとやっちゃうこともあるのでそれぞれの書き方でどれが速いのか確認してみた。 1) Sprintfを使うパターン fmt.Sprintf("%s", data) 2) string() を使うパターン string(data) 3) unsafe を使うパターン *(*string)(unsafe.Pointer(&data)) 唐突にテストコード package main import ( "fmt" "unsafe" "testing" ) var data = []byte("はろーhogehogeです。") func Benchmark_Sprintf(b *testing.B){ b.ResetTimer() for i := 0; i < b
ReadMeFirst golangには、関数のbenchmarkを行うパッケージ・ユーティリティが標準で含まれています。 今回はgoで関数単位でのbenchmarkをとる方法について書きます。 testの基本的な実行方法については、前記事を参照。 ベンチマークするテスト関数を作る testing package の benchMark用の 構造体を使います。 Benchmark関数は以下のように宣言します。(規約) package main import ( "fmt" "testing" ) func BenchmarkAppend_AllocateEveryTime(b *testing.B) { base := []string{} b.ResetTimer() // Nはコマンド引数から与えられたベンチマーク時間から自動で計算される for i := 0; i < b.N; i+
History 14/05/09: Merge2 を修正しました。http://twitter.com/jbking/status/464659353945911297 Intro Go のスライスは、いわゆる LL 系の言語が持つ可変長配列の実装と似ています。 よって LL のような手軽な扱いをすることもできますが、その内部実装を知ることでより効率の良いメモリハンドリングができ、パフォーマンスを改善や、メモリーリークの防止などに繋がる可能性があります。 この辺は SWrap というライブラリを作りながら勉強したので、今回は、この Go のスライスの内部実装を解説します。 Go の配列 スライスを知るためには、まず配列について知っておく必要があります。 Go の配列は固定長のため、以下のように長さを指定して宣言します。 var arr [4]int func main() { arr =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く