タグ

programmingとperformanceに関するvanbraamのブックマーク (11)

  • 高速な暗号実装のためにしてきたこと

    Windows Server 2016 で作るシンプルなハイパーコンバージドインフラ (Microsoft TechSummit 2016)

    高速な暗号実装のためにしてきたこと
    vanbraam
    vanbraam 2018/03/25
    後半辛すぎる.自分の能力では無理そう;秘密計算は遅いので高速化したくなるのはわかるのだが,コードの最適化よりもアルゴリズムのbreakthroughを目指した方が良いのでは,というのは素人考えなのだろうか?
  • 『なぜ私達は Python から Go に移行したのか - Frasco』へのコメント

    ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

    『なぜ私達は Python から Go に移行したのか - Frasco』へのコメント
    vanbraam
    vanbraam 2017/10/26
    Javaが遅いと言っている/思っている人へ:Javaはプログラムの起動に時間がかかるだけで処理性能は高い.例えばhttp://benchmarksgame.alioth.debian.org/u64q/java.htmlから各テスト(k-nucleotide,etc)のリンクを辿ればJavaの処理性能の高さがわかる
  • 差分検出アルゴリズム三種盛り - Object.create(null)

    こんばんは. 気がつけばもうずいぶんと涼しくなってきました. 勢い余って凍ってしまったりせぬよう, くれぐれも普段の言動にはお気をつけください. はじめに さて, 我々人類にはどうしても二つの文字列 (あるいは行ごとに区切られたテキスト) 間の差分を求めなければいけない瞬間が発生します. 先人たちはそういった時のために diff のようなツールを開発し, それを利用することで文明はめざましい発展を遂げてきました. しかしながら, 使用するアルゴリズムを比較検討したい場合, 「差分」の定義を変えるなどして既存のアルゴリズムに変更を加えたい場合, diff のない異世界に飛ばされて自分で実装しなければいけない時などにおいては, 差分検出アルゴリズムについての理解が必要不可欠です. というわけで, この記事では文字列間の差分検出とは何かということと, 差分を求める三種類のアルゴリズムの紹介・解説

    差分検出アルゴリズム三種盛り - Object.create(null)
    vanbraam
    vanbraam 2017/10/10
    O(ND)法の途中,"A–B 間の編集距離が D であったとき"は,"A–B 間の_最小_編集距離が D であったとき"という意味?;行単位のdiffの時はもう一工夫要りそう
  • So You Wanna Go Fast?

    This document contains the transcript from a presentation titled "So You Wanna Go Fast?" by Tyler Treat. Some of the key topics discussed include measuring performance using tools like pprof, how different language features in Go like channels, interfaces, and memory management can impact performance, and techniques for writing concurrent and multi-core friendly code in Go like using read-write mu

    So You Wanna Go Fast?
    vanbraam
    vanbraam 2017/10/02
    ここまで性能追求しなければならないプロダクトは殆どない.NATSが数少ないそういう製品なのは理解してる;性能測定のtoolchainについては非常に参考になった
  • Kotlinの隠れたコストについてのベンチマーク | POSTD

    @BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば

    Kotlinの隠れたコストについてのベンチマーク | POSTD
    vanbraam
    vanbraam 2017/08/17
    この記事及びベンチマークは,別の人物が推測で書いた"隠れたコスト"の実相を明らかにし,風評被害から守るのが目的.殆どのケースで"隠れたコスト"が存在しない事が明らかになり,Kotlinの評判が守られた
  • Big Sky :: golang でパフォーマンスチューニングする際に気を付けるべきこと

    golang のテストツールには標準でベンチマークツールが付属しています。例えば、引数 n を貰ってその数分だけメッセージの入ったスライスを返す関数 makeSlice が以下の実装だったとします。 foo.go package foo import "fmt" func makeSlice(n int) []string { var r []string for i := 0; i < n; i++ { r = append(r, fmt.Sprintf("%03d だよーん", i)) } return r } 如何にも遅そうなコードですね。まずはこのコードを単品で計測するベンチマークを書きます。 foo_test.go package foo import "testing" func BenchmarkMakeSlice(b *testing.B) { b.ResetTimer()

    Big Sky :: golang でパフォーマンスチューニングする際に気を付けるべきこと
    vanbraam
    vanbraam 2016/10/19
    Goは標準でtoolingがかなり充実してると思う
  • 高速化のためのPython Tips - のんびりしているエンジニアの日記


      Python   Python Python  Profiling   Python rangexrangePython2.7   Import   yield使 NumpyTips Numpy使 Numpy Numba  Cython Dask PyPy   Python PythonC++Java
    高速化のためのPython Tips - のんびりしているエンジニアの日記
  • hescape - はじめてのにき(2016-08-16)


    _ hescape http://k0kubun.hatenablog.com/entry/hescape 使rubygem https://github.com/k0kubun/hescape  const uint8_t* src  size_t size s
    vanbraam
    vanbraam 2016/08/17
    実装の詳細は追う能力がないが,"トレードオフのある速度最適化はちゃんと速くしたいものがある時にやるべき"<これは真だと思う
  • Throughput vs Latency and Lock-Free vs Wait-Free

    On the previous post we showed an excellent presentation by Cliff Click, and one of the things he mentions is that there is performance for throughput and performance for latency, which really resonated with me. When people talk about performance, they're usually just interested in throughput. This is fine, but throughput is just one of the vectors of performance, it's just a number (for a particu

    vanbraam
    vanbraam 2016/08/07
    Throughputはlatency distributionのmean(平均);"if they both have the same throughput or the lock-free algorithm has a lower throughput than the wait-free one, in that case, by definition, the wait-free is better, because it's better in all metrics.";Wait-freeは後で調べる
  • Big Sky :: golang の遅いコードをたった1行で高速化するテクニック


     1.0X  1.1   Go1.7 Go  mattn ( Go1.7   var t [256]byte func f(b *[16]byte) { for i, v := range b { b[i] = t[v] } } issue 
    Big Sky :: golang の遅いコードをたった1行で高速化するテクニック
    vanbraam
    vanbraam 2016/08/04
    trickyだが,説明付きなので,理由を考えると理解できる.そういう意味で非常に良い記事だと思う.ただtrickyではあるのでやはりbad knowhowの類かと;コンパイラーが自動で判断できない理由は記事中にあると思う
  • Programming TCP for responsiveness

    The document discusses optimizations to TCP and HTTP/2 to improve responsiveness on the web. It describes how TCP slow start works and the delays introduced in standard HTTP/2 usage from TCP/TLS handshakes. The author proposes adjusting the TCP send buffer polling threshold to allow switching between responses more quickly based on TCP congestion window state. Benchmark results show this can reduc

    Programming TCP for responsiveness
    vanbraam
    vanbraam 2016/07/03
    殆ど理解できてないが,window内に収まる様HTTP/2 frame size調整 ->パケット数増->条件分岐で必要時のみ調整,という流れかな?この種の複雑さの導入は後でトラブルの原因になりそう;HTTP/2でTCP/IPの知識に再び脚光が当たる様になる?
  • 1